예제 #1
0
        public static Task <bool> InsertNotificationAsync(
            GattCharacteristic characteristic,
            UserNotification userNotification,
            ApplicationPreference application)
        {
            if (userNotification?.AppInfo == null)
            {
                return(Task.FromResult(false));
            }

            if (application != null && application.Muted)
            {
                return(Task.FromResult(true));
            }

            var xmlNotification = AsteroidHelper.CreateInsertNotificationCommandXml(
                packageName: userNotification.AppInfo.PackageFamilyName,
                id: userNotification.Id.ToString(),
                applicationName: userNotification.AppInfo.DisplayInfo.DisplayName,
                applicationIcon: (application?.Icon ?? default(ApplicationIcon)).GetId(),
                summary: userNotification.GetTitle(),
                body: userNotification.GetBody(),
                vibrationLevel: application?.Vibration ?? VibrationLevel.None);

            if (string.IsNullOrWhiteSpace(xmlNotification))
            {
                return(Task.FromResult(false));
            }

            return(characteristic.WriteByteArrayToCharacteristicAsync(Encoding.UTF8.GetBytes(xmlNotification)));
        }