mirror of
https://github.com/ZuneDev/ZuneShell.dll.git
synced 2026-07-27 13:11:51 -07:00
168 lines
6.5 KiB
C#
168 lines
6.5 KiB
C#
// Decompiled with JetBrains decompiler
|
|
// Type: ZuneUI.SettingsExperience
|
|
// 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.Util;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
|
|
namespace ZuneUI
|
|
{
|
|
public class SettingsExperience : Experience
|
|
{
|
|
private ArrayListDataSet _nodes;
|
|
private CategoryPageNode _software;
|
|
private CategoryPageNode _device;
|
|
private CategoryPageNode _account;
|
|
private Category _nameYourDevice;
|
|
|
|
public SettingsExperience(Frame frameOwner)
|
|
: base(frameOwner, StringId.IDS_SETTINGS_PIVOT, SQMDataId.Invalid)
|
|
=> SyncControls.Instance.PropertyChanged += new PropertyChangedEventHandler(this.OnSyncPropertyChanged);
|
|
|
|
protected override void OnInvoked()
|
|
{
|
|
if (Shell.SettingsFrame.Wizard.IsCurrent)
|
|
return;
|
|
base.OnInvoked();
|
|
}
|
|
|
|
protected override void OnDispose(bool disposing)
|
|
{
|
|
SyncControls.Instance.PropertyChanged -= new PropertyChangedEventHandler(this.OnSyncPropertyChanged);
|
|
base.OnDispose(disposing);
|
|
}
|
|
|
|
private void OnSyncPropertyChanged(object sender, PropertyChangedEventArgs args)
|
|
{
|
|
if (!(args.PropertyName == "CurrentDevice"))
|
|
return;
|
|
this.Device.Description = SyncControls.Instance.CurrentDevice.PivotDescription;
|
|
if (this._nameYourDevice == null)
|
|
return;
|
|
this._nameYourDevice.Description = Shell.LoadString(StringId.IDS_NAME_ZUNE_HEADER);
|
|
}
|
|
|
|
public override IList NodesList
|
|
{
|
|
get
|
|
{
|
|
if (this._nodes == null)
|
|
{
|
|
this._nodes = new ArrayListDataSet(this);
|
|
this._nodes.Add(Software);
|
|
if (FeatureEnablement.IsFeatureEnabled(Features.eDevice))
|
|
this._nodes.Add(Device);
|
|
if (FeatureEnablement.IsFeatureEnabled(Features.eSignInAvailable))
|
|
this._nodes.Add(Account);
|
|
}
|
|
return _nodes;
|
|
}
|
|
}
|
|
|
|
public CategoryPageNode Software
|
|
{
|
|
get
|
|
{
|
|
if (this._software == null)
|
|
this._software = new CategoryPageNode(this, StringId.IDS_SOFTWARE_PIVOT, new Category[11]
|
|
{
|
|
SettingCategories.Collection,
|
|
SettingCategories.Filetype,
|
|
SettingCategories.Privacy,
|
|
SettingCategories.Podcast,
|
|
SettingCategories.Sharing,
|
|
SettingCategories.Photo,
|
|
SettingCategories.Display,
|
|
SettingCategories.Rip,
|
|
SettingCategories.Burn,
|
|
SettingCategories.Metadata,
|
|
SettingCategories.General
|
|
}, SQMDataId.Invalid, true, false);
|
|
return this._software;
|
|
}
|
|
}
|
|
|
|
public CategoryPageNode Device
|
|
{
|
|
get
|
|
{
|
|
if (this._device == null)
|
|
{
|
|
List<Category> categoryList = new List<Category>();
|
|
categoryList.Add(SettingCategories.SyncOptions);
|
|
categoryList.Add(SettingCategories.SyncGroups);
|
|
this._nameYourDevice = SettingCategories.NameDevice;
|
|
categoryList.Add(this._nameYourDevice);
|
|
categoryList.Add(SettingCategories.MoreOnWeb);
|
|
if (ShouldShowDeviceMarketplaceCategory)
|
|
categoryList.Add(SettingCategories.DeviceMarketplace);
|
|
categoryList.Add(SettingCategories.FirmwareUpdate);
|
|
categoryList.Add(SettingCategories.WirelessSetup);
|
|
categoryList.Add(SettingCategories.PictureVideo);
|
|
categoryList.Add(SettingCategories.Transcoding);
|
|
categoryList.Add(SettingCategories.SpaceReservation);
|
|
categoryList.Add(SettingCategories.DevicePrivacy);
|
|
this._device = new CategoryPageNode(this, StringId.IDS_DEVICE_PIVOT, categoryList, SQMDataId.Invalid, true, false);
|
|
}
|
|
return this._device;
|
|
}
|
|
}
|
|
|
|
public CategoryPageNode Account
|
|
{
|
|
get
|
|
{
|
|
if (this._account == null)
|
|
{
|
|
List<Category> categoryList = new List<Category>();
|
|
categoryList.Add(SettingCategories.AccountLinks);
|
|
if (FeatureEnablement.IsFeatureEnabled(Features.eMarketplace))
|
|
{
|
|
if (FeatureEnablement.IsFeatureEnabled(Features.eSubscription) || FeatureEnablement.IsFeatureEnabled(Features.eApps))
|
|
categoryList.Add(SettingCategories.Devices);
|
|
categoryList.Add(SettingCategories.PurchaseHistory);
|
|
categoryList.Add(SettingCategories.RentalHistory);
|
|
if (FeatureEnablement.IsFeatureEnabled(Features.eSubscription))
|
|
categoryList.Add(SettingCategories.SubscriptionHistory);
|
|
}
|
|
this._account = new CategoryPageNode(this, StringId.IDS_ACCOUNT_PIVOT, categoryList, SQMDataId.Invalid, true, false);
|
|
}
|
|
return this._account;
|
|
}
|
|
}
|
|
|
|
internal void ShowDevice(bool show)
|
|
{
|
|
IList nodesList = this.NodesList;
|
|
bool flag = false;
|
|
foreach (object obj in nodesList)
|
|
{
|
|
if (obj == this.Device)
|
|
{
|
|
flag = true;
|
|
break;
|
|
}
|
|
}
|
|
if (show == flag)
|
|
return;
|
|
this.Device.Available = show;
|
|
if (show)
|
|
{
|
|
if (nodesList.Count > 1 && nodesList[0] == this.Software)
|
|
nodesList.Insert(1, Device);
|
|
else
|
|
nodesList.Add(Device);
|
|
}
|
|
else
|
|
nodesList.Remove(Device);
|
|
}
|
|
|
|
public static bool ShouldShowDeviceMarketplaceCategory => FeatureEnablement.IsFeatureEnabled(Features.eMarketplace) || FeatureEnablement.IsFeatureEnabled(Features.eSocial);
|
|
}
|
|
}
|