787a6e9f48
UI navigation framework Related Work Items: #408, #414, #416
65 lines
1.7 KiB
C#
65 lines
1.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using Windows.ApplicationModel.Activation;
|
|
using Windows.ApplicationModel.Background;
|
|
using Windows.System.Power;
|
|
using Windows.UI.Notifications;
|
|
|
|
namespace FoxTube.Utils
|
|
{
|
|
// TODO: Complete class
|
|
public static class BackgroundManager
|
|
{
|
|
public static async Task PerformBackgroundTask(BackgroundActivatedEventArgs args)
|
|
{
|
|
|
|
if (args.TaskInstance.TriggerDetails is ToastNotificationActionTriggerDetail details)
|
|
{
|
|
ProcessBackgroundAction(details.Argument);
|
|
// TODO: Process toast parameters
|
|
}
|
|
else
|
|
{
|
|
// TODO: Restore user
|
|
// TODO: Update subscriptions
|
|
// TODO: Update homepage cache
|
|
}
|
|
|
|
//var saverRequest = PowerManager.EnergySaverStatus;
|
|
}
|
|
|
|
public static async Task ProcessBackgroundAction(string uri)
|
|
{
|
|
|
|
}
|
|
|
|
public static async void RegisterBackgroundTasks()
|
|
{
|
|
var backgroundRequest = await BackgroundExecutionManager.RequestAccessAsync();
|
|
if (backgroundRequest == BackgroundAccessStatus.DeniedBySystemPolicy || backgroundRequest == BackgroundAccessStatus.DeniedByUser)
|
|
return;
|
|
|
|
RegisterBackgoundTask("FoxtubeToastBackground", new ToastNotificationActionTrigger());
|
|
RegisterBackgoundTask("FoxtubeBackground", new TimeTrigger(15, false));
|
|
}
|
|
|
|
private static void RegisterBackgoundTask(string taskName, IBackgroundTrigger trigger)
|
|
{
|
|
if (BackgroundTaskRegistration.AllTasks.Any(i => i.Value.Name.Equals(taskName)))
|
|
return;
|
|
|
|
BackgroundTaskBuilder builder = new BackgroundTaskBuilder
|
|
{
|
|
Name = taskName,
|
|
IsNetworkRequested = true
|
|
};
|
|
builder.SetTrigger(trigger);
|
|
|
|
BackgroundTaskRegistration registration = builder.Register();
|
|
}
|
|
}
|
|
}
|