mirror of
https://github.com/ZuneDev/ZuneShell.dll.git
synced 2026-07-27 13:11:51 -07:00
143 lines
6.2 KiB
C#
143 lines
6.2 KiB
C#
// Decompiled with JetBrains decompiler
|
|
// Type: ZuneUI.QuickplayPage
|
|
// 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.Subscription;
|
|
using Microsoft.Zune.Util;
|
|
using System;
|
|
using UIXControls;
|
|
|
|
namespace ZuneUI
|
|
{
|
|
public class QuickplayPage : ZunePage
|
|
{
|
|
private bool _startupPage;
|
|
private bool _userInteracted;
|
|
private static bool _showFUE;
|
|
private static bool _createdOnce;
|
|
private bool _hasNavigatedAway;
|
|
|
|
public QuickplayPage()
|
|
{
|
|
this.PivotPreference = Shell.MainFrame.Quickplay.Default;
|
|
this.IsRootPage = true;
|
|
this.UI = "res://ZuneShellResources!Quickplay.uix#Quickplay";
|
|
this.UIPath = "Quickplay\\Default";
|
|
this.BackgroundUI = LandBackgroundUI;
|
|
this.ShowSearch = false;
|
|
if (_createdOnce)
|
|
return;
|
|
_createdOnce = true;
|
|
_showFUE = ClientConfiguration.Quickplay.ShowFUE;
|
|
if (!(Shell.SessionStartupPath == Shell.MainFrame.Quickplay.DefaultUIPath))
|
|
return;
|
|
SQMLog.Log(SQMDataId.QuickPlayAsDefaultStarts, 1);
|
|
this._startupPage = true;
|
|
}
|
|
|
|
protected override void OnNavigatedAwayWorker(IPage destination)
|
|
{
|
|
if (!this._hasNavigatedAway && this._startupPage)
|
|
{
|
|
if (!this.UserInteracted && !(destination is NowPlayingLand))
|
|
SQMLog.Log(SQMDataId.QuickPlayAsDefaultSkips, 1);
|
|
if (ClientConfiguration.Quickplay.CheckUseCount)
|
|
{
|
|
if (this.UserInteracted)
|
|
{
|
|
ClientConfiguration.Quickplay.UnusedCount = 0;
|
|
}
|
|
else
|
|
{
|
|
ZunePage zunePage = destination as ZunePage;
|
|
string str1 = "";
|
|
if (zunePage != null && zunePage.PivotPreference != null)
|
|
{
|
|
string str2 = "";
|
|
if (zunePage.PivotPreference.Experience is MarketplaceExperience || zunePage.PivotPreference.Experience is SocialExperience || zunePage.PivotPreference.Experience is CollectionExperience && !(zunePage.PivotPreference.Experience is DeviceExperience))
|
|
str2 = zunePage.UIPath;
|
|
if (!string.IsNullOrEmpty(str2))
|
|
{
|
|
str1 = str2;
|
|
int startIndex = str2.IndexOf('\\');
|
|
if (startIndex != -1)
|
|
str1 = str2.Remove(startIndex);
|
|
}
|
|
}
|
|
if (!string.IsNullOrEmpty(str1))
|
|
{
|
|
if (ClientConfiguration.Quickplay.FavoredExperience == str1)
|
|
{
|
|
++ClientConfiguration.Quickplay.UnusedCount;
|
|
}
|
|
else
|
|
{
|
|
ClientConfiguration.Quickplay.FavoredExperience = str1;
|
|
ClientConfiguration.Quickplay.UnusedCount = 1;
|
|
}
|
|
if (ClientConfiguration.Quickplay.UnusedCount >= ClientConfiguration.Quickplay.MaxUnusedCount)
|
|
{
|
|
ClientConfiguration.Quickplay.CheckUseCount = false;
|
|
this.Prompt(zunePage.PivotPreference.Experience);
|
|
}
|
|
}
|
|
else
|
|
ClientConfiguration.Quickplay.UnusedCount = 0;
|
|
}
|
|
}
|
|
}
|
|
this._hasNavigatedAway = true;
|
|
base.OnNavigatedAwayWorker(destination);
|
|
}
|
|
|
|
public void Prompt(Experience destinationExperience)
|
|
{
|
|
Command yesCommand = new Command(null, Shell.LoadString(StringId.IDS_DIALOG_YES), null);
|
|
yesCommand.Invoked += (sender, args) => ClientConfiguration.Shell.StartupPage = destinationExperience.DefaultUIPath;
|
|
string message = null;
|
|
if (destinationExperience is CollectionExperience)
|
|
message = Shell.LoadString(StringId.IDS_QP_CHANGESTARTUPPAGE_COLLECTION);
|
|
else if (destinationExperience is MarketplaceExperience)
|
|
message = Shell.LoadString(StringId.IDS_QP_CHANGESTARTUPPAGE_MARKETPLACE);
|
|
else if (destinationExperience is SocialExperience)
|
|
message = Shell.LoadString(StringId.IDS_QP_CHANGESTARTUPPAGE_SOCIAL);
|
|
if (string.IsNullOrEmpty(message))
|
|
return;
|
|
MessageBox.ShowYesNo(Shell.LoadString(StringId.IDS_QP_CHANGESTARTUPPAGE_TITLE), message, yesCommand);
|
|
}
|
|
|
|
public static void FUEComplete()
|
|
{
|
|
if (!ShowFUE)
|
|
return;
|
|
ClientConfiguration.Quickplay.ShowFUE = false;
|
|
}
|
|
|
|
public static DateTime InvalidDate => DateTime.MinValue;
|
|
|
|
public static bool PlayPodcastsNewestFirst(int seriesId)
|
|
{
|
|
uint keepEpisodes = (uint)ClientConfiguration.Series.PodcastDefaultKeepEpisodes;
|
|
ESeriesPlaybackOrder playbackOrder = (ESeriesPlaybackOrder)ClientConfiguration.Series.PodcastDefaultPlaybackOrder;
|
|
SubscriptionManager.Instance.GetManagementSettings(seriesId, out keepEpisodes, out playbackOrder);
|
|
return playbackOrder == ESeriesPlaybackOrder.eSeriesPlaybackOrderNewestFirst;
|
|
}
|
|
|
|
public static bool ShowFUE => _showFUE;
|
|
|
|
public bool UserInteracted
|
|
{
|
|
get => this._userInteracted;
|
|
set => this._userInteracted = value;
|
|
}
|
|
|
|
private static string LandBackgroundUI => "res://ZuneShellResources!Quickplay.uix#QuickplayBackground";
|
|
|
|
public static int PlaylistTypeMask => 163;
|
|
}
|
|
}
|