示例#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)));
        }
示例#2
0
        public void UpsertUserIcon(string appId, string packageName, ApplicationIcon?icon = null, bool muted = false, VibrationLevel vibrationLevel = VibrationLevel.None)
        {
            var existingUserIcon = UserIcons.SingleOrDefault(ui => ui.AppId == appId);

            if (existingUserIcon != null && icon != null)
            {
                existingUserIcon.PackageName = packageName;
                existingUserIcon.Icon        = icon.GetValueOrDefault();
                existingUserIcon.Muted       = muted;
                existingUserIcon.Vibration   = muted ? VibrationLevel.None : vibrationLevel;
            }
            else if (existingUserIcon == null)
            {
                if (icon == null)
                {
                    icon = GetDefaultApplicationIcon();
                }

                var userIcon = new ApplicationPreference
                {
                    AppId       = appId,
                    PackageName = packageName,
                    Icon        = icon.GetValueOrDefault(),
                    Muted       = muted,
                    Vibration   = muted ? VibrationLevel.None : vibrationLevel
                };

                UserIcons.Add(userIcon);
            }
        }
示例#3
0
 private static ApplicationViewModel ToApplicationViewModel(ApplicationPreference applicationPreference)
 {
     return(new ApplicationViewModel
     {
         Id = applicationPreference.AppId,
         Name = applicationPreference.PackageName,
         Icon = applicationPreference.Icon,
         Muted = applicationPreference.Muted,
         Vibration = applicationPreference.Muted ? false : applicationPreference.Vibration != VibrationLevel.None
     });
 }
示例#4
0
 public void UpsertUserIcon(ApplicationPreference applicationPreference)
 {
     this.UpsertUserIcon(applicationPreference.AppId, applicationPreference.PackageName, applicationPreference.Icon, applicationPreference.Muted, applicationPreference.Vibration);
 }