Пример #1
0
        private async Task OnUserNotificationsBackgroundTaskActivated(IBackgroundTaskInstance backgroundTaskInstance)
        {
            var applicationsService = new ApplicationsService();

            var errorMessage = await DeviceManager.ConnectAsync(isBackgroundActivity : true);

            if (!string.IsNullOrWhiteSpace(errorMessage))
            {
                return;
            }

            var characteristic = await DeviceManager.GetGattCharacteristicAsync(Asteroid.NotificationUpdateCharacteristicUuid);

            if (characteristic == null)
            {
                return;
            }

            var userNotifications = await NotificationsManager.RetriveNotificationsAsync();

            if (userNotifications.IsNullOrEmpty())
            {
                return;
            }

            foreach (var userNotification in userNotifications)
            {
                var application = applicationsService.GetApplicationPreferenceByAppId(userNotification.AppInfo.PackageFamilyName);
                await DeviceManager.InsertNotificationAsync(characteristic, userNotification, application);
            }

            await applicationsService.UpsertFoundApplicationsAsync(userNotifications);

            await DeviceManager.DisconnectAsync(removeLastDeviceInfo : false);
        }