Files
ZuneShell.dll/ZuneShell/ZuneUI/CollectionExperience.cs
T

169 lines
5.8 KiB
C#

// Decompiled with JetBrains decompiler
// Type: ZuneUI.CollectionExperience
// 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.Iris;
using Microsoft.Zune.Configuration;
using Microsoft.Zune.Util;
using System.Collections;
namespace ZuneUI
{
public class CollectionExperience : Experience
{
private ArrayListDataSet _nodes;
private Node _music;
private Node _videos;
private Node _photos;
private Node _podcasts;
private Node _channels;
private Node _applications;
private Node _radio;
private Node _downloads;
private bool _isDevice;
public CollectionExperience(Frame frameOwner)
: base(frameOwner, StringId.IDS_COLLECTION_PIVOT, SQMDataId.CollectionClicks)
{
}
public CollectionExperience(Frame frameOwner, bool isDevice)
: base(frameOwner, StringId.IDS_DEVICE_PIVOT, SQMDataId.DeviceClicks)
=> this._isDevice = isDevice;
public override IList NodesList
{
get
{
if (this._nodes == null)
{
this._nodes = new ArrayListDataSet(this);
this._nodes.Add(Music);
this._nodes.Add(Videos);
this._nodes.Add(Photos);
this._nodes.Add(Podcasts);
if (FeatureEnablement.IsFeatureEnabled(Features.eChannels))
this._nodes.Add(Channels);
if (FeatureEnablement.IsFeatureEnabled(Features.eRadio))
this._nodes.Add(Radio);
this.UpdateApplicationPivot();
}
return _nodes;
}
}
public Node Music
{
get
{
if (this._music == null)
this._music = new Node(this, StringId.IDS_MUSIC_PIVOT, this._isDevice ? "Device\\Music" : "Collection\\Music\\Default", this._isDevice ? SQMDataId.DeviceMusicClicks : SQMDataId.CollectionMusicClicks);
return this._music;
}
}
public Node Videos
{
get
{
if (this._videos == null)
this._videos = new Node(this, StringId.IDS_VIDEO_PIVOT, this._isDevice ? "Device\\Videos" : "Collection\\Videos\\Default", this._isDevice ? SQMDataId.DeviceVideoClicks : SQMDataId.CollectionVideoClicks);
return this._videos;
}
}
public Node Photos
{
get
{
if (this._photos == null)
this._photos = new Node(this, StringId.IDS_PICTURES_PIVOT, this._isDevice ? "Device\\Photos" : "Collection\\Photos", this._isDevice ? SQMDataId.DevicePicturesClicks : SQMDataId.CollectionPicturesClicks);
return this._photos;
}
}
public Node Podcasts
{
get
{
if (this._podcasts == null)
this._podcasts = new Node(this, StringId.IDS_PODCASTS_PIVOT, this._isDevice ? "Device\\Podcasts" : "Collection\\Podcasts", this._isDevice ? SQMDataId.DevicePodcastsClicks : SQMDataId.CollectionPodcastsClicks);
return this._podcasts;
}
}
public Node Channels
{
get
{
if (this._channels == null)
this._channels = new Node(this, StringId.IDS_CHANNELS_PIVOT, this._isDevice ? "Device\\Channels" : "Collection\\Channels", this._isDevice ? SQMDataId.DeviceChannelsClicks : SQMDataId.CollectionChannelsClicks);
return this._channels;
}
}
public Node Applications
{
get
{
if (this._applications == null)
this._applications = new Node(this, StringId.IDS_APPS_PIVOT, this._isDevice ? "Device\\Applications" : "Collection\\Applications", SQMDataId.Invalid);
return this._applications;
}
}
public Node Radio
{
get
{
if (this._radio == null)
this._radio = new Node(this, StringId.IDS_RADIO_PIVOT, this._isDevice ? "Device\\Radio" : "Collection\\Radio", SQMDataId.Invalid);
return this._radio;
}
}
public Node Downloads
{
get
{
if (this._downloads == null)
this._downloads = new Node(this, StringId.IDS_DOWNLOADS_PIVOT, "Collection\\Downloads", SQMDataId.MarketplaceDownloadsClicks);
return this._downloads;
}
}
public void UpdateApplicationPivot()
{
if (FeatureEnablement.IsFeatureEnabled(Features.eGames) && ClientConfiguration.Shell.ShowApplicationPivot)
{
if (this.NodesList.Contains(Applications))
return;
this.NodesList.Add(Applications);
}
else
{
if (!this.NodesList.Contains(Applications))
return;
this.NodesList.Remove(Applications);
}
}
public void UpdateDownloadPivot(bool show)
{
int nodeIndex = this.GetNodeIndex(this.Downloads);
bool flag = nodeIndex != -1;
if (show == flag)
return;
this.Downloads.Available = show;
if (show)
this.NodesList.Add(Downloads);
else
this.NodesList.RemoveAt(nodeIndex);
}
public override string DefaultUIPath => "Collection\\Default";
}
}