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(); } } }