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

61 lines
2.4 KiB
C#

// Decompiled with JetBrains decompiler
// Type: ZuneUI.FriendsHelper
// 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.Subscription;
using System;
namespace ZuneUI
{
public class FriendsHelper : ModelItem
{
private bool m_refreshCompleted;
public FriendsHelper() => this.StartListening();
protected override void OnDispose(bool disposing)
{
if (disposing)
this.StopListening();
base.OnDispose(disposing);
}
public bool RefreshCompleted
{
get => this.m_refreshCompleted;
private set
{
if (this.m_refreshCompleted == value)
return;
this.m_refreshCompleted = value;
this.FirePropertyChanged(nameof(RefreshCompleted));
}
}
public void Refresh(Guid userGuid, string feedUri)
{
if (userGuid != Guid.Empty && SignIn.Instance.LastSignedInUserGuid == userGuid)
this.RefreshCompleted = new HRESULT(SubscriptionManager.Instance.Refresh(SignIn.Instance.LastSignedInUserId, EMediaTypes.eMediaTypeUser, false)).IsError;
else
this.RefreshCompleted = true;
}
private void StartListening() => SubscriptionManager.Instance.OnForegroundSubscriptionChanged += new SubscriptionEventHandler(this.OnForegroundSubscriptionChanged);
private void StopListening() => SubscriptionManager.Instance.OnForegroundSubscriptionChanged -= new SubscriptionEventHandler(this.OnForegroundSubscriptionChanged);
private void OnForegroundSubscriptionChanged(SubscriptonEventArguments args) => Application.DeferredInvoke(new DeferredInvokeHandler(this.DeferredOnForegroundSubscriptionChanged), args, DeferredInvokePriority.Normal);
private void DeferredOnForegroundSubscriptionChanged(object args)
{
SubscriptonEventArguments subscriptonEventArguments = (SubscriptonEventArguments)args;
if (subscriptonEventArguments.Action != SubscriptionAction.RefreshFinished || subscriptonEventArguments.MediaType != EMediaTypes.eMediaTypeUser || subscriptonEventArguments.UserInitiated)
return;
this.RefreshCompleted = true;
}
}
}