Ejemplo n.º 1
0
        /// <summary>
        /// Returns builder for notification created in editor by index(position in list in editor window)
        /// </summary>
        /// <param name="pos">index of notification in the editor list</param>
        /// <returns>Notification builder</returns>
        public static NotificationBuilder GetNotificationBuilderByIndex(int pos)
        {
            NotificationInstance item    = _dataHolder.notifications[pos];
            NotificationBuilder  builder = NotificationBuilder.FromInstance(item);

            return(builder);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// The most simple notification you can schedule
        /// </summary>
        public void SimpleNotificationSample()
        {
            int    id    = 1;
            string title = "Notification titile";
            string body  = "Notification body";

            NotificationBuilder builder = new NotificationBuilder(id, title, body);

            AndroidNotifications.scheduleNotification(builder.build());
        }
 public static NotificationBuilder GetNotificationBuilderByName(string name)
 {
     foreach (NotificationInstance instance in _dataHolder.notifications)
     {
         if (instance.name.Equals(name))
         {
             return(NotificationBuilder.FromInstance(instance));
         }
     }
     return(null);
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Returns builder for notification created in editor window by name
        /// </summary>
        /// <param name="name">Name of the notification to get</param>
        /// <returns>Notification builder or null if the notification is not found</returns>
        public static NotificationBuilder GetNotificationBuilderByName(string name)
        {
            foreach (NotificationInstance item in _dataHolder.notifications)
            {
                if (item.name.Equals(name))
                {
                    NotificationBuilder builder = NotificationBuilder.FromInstance(item);
                    return(builder);
                }
            }

            return(null);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Schedule created in editor notification
        /// </summary>
        public void ScheduleCreatedInEditorSample()
        {
            string notificationName = "FirstNotif";

            // Method returns builder so you can config your notification afterwards if you want
            NotificationBuilder builder = AndroidNotifications.GetNotificationBuilderByName(notificationName);

            // If notification with specified name doesn't exist builder will be null
            if (builder != null)
            {
                Notification notif = builder.build();
                AndroidNotifications.scheduleNotification(notif);
            }
            else
            {
                Debug.LogError("Notification with name " + notificationName + " wasn't found");
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Notification with custom icons and sounds
        /// </summary>
        public void CustomIconsAndSoundSample()
        {
            int    id    = 1;
            string title = "Custom icon and sound";
            string body  = "You have some unfinished business!";

            // Show notification in 5 minutes
            TimeSpan delay = new TimeSpan(0, 5, 0);

            // WARNING: in order to this sample to work place the icons with the corresponding names res/drawable folder
            // and sound with corresponding name in res/raw folder
            NotificationBuilder builder = new NotificationBuilder(id, title, body);

            builder
            .setDelay(delay)
            .setSmallIcon("mySmallIcon")
            .setLargeIcon("myLargeIcon")
            .setSound("mySound");

            AndroidNotifications.scheduleNotification(builder.build());
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Repetitive notification
        /// </summary>
        public void RepeatingNotificationSample()
        {
            int    id    = 1;
            string title = "New repeating notification";
            string body  = "You have some unfinished business!";

            // Show notification in 5 minutes
            TimeSpan delay = new TimeSpan(0, 5, 0);

            // Show notification with 10 minute interval
            TimeSpan interval = new TimeSpan(0, 10, 0);

            NotificationBuilder builder = new NotificationBuilder(id, title, body);

            builder
            .setDelay(delay)
            .setRepeating(true)
            .setInterval(interval);

            AndroidNotifications.scheduleNotification(builder.build());
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Notification with some customizations (group, color, ticker and other)
        /// </summary>
        public void CustomizedNotificationSample()
        {
            int    id    = 1;
            string title = "New notification";
            string body  = "You have some unfinished business!";

            // Show notification in one hour
            TimeSpan delay = new TimeSpan(1, 0, 0);

            NotificationBuilder builder = new NotificationBuilder(id, title, body);

            builder
            .setTicker("New notification from your app!")
            .setDefaults(NotificationBuilder.DEFAULT_ALL)
            .setAlertOnlyOnce(true)
            .setDelay(delay)
            .setAutoCancel(true)
            .setGroup("Group 1")
            .setColor("#B30000");

            AndroidNotifications.scheduleNotification(builder.build());
        }
Ejemplo n.º 9
0
        public static NotificationBuilder FromInstance(NotificationInstance notif)
        {
            NotificationBuilder builder = new NotificationBuilder(notif.id, notif.title, notif.body);

            if (notif.smallIcon != null)
            {
                builder.setSmallIcon(notif.smallIcon.name);
            }
            if (notif.largeIcon != null)
            {
                builder.setLargeIcon(notif.largeIcon.name);
            }
            if ((notif.ticker != null) && (notif.ticker.Length > 0))
            {
                builder.setTicker(notif.ticker);
            }
            int defaultFlags = 0;

            if (notif.defaultSound)
            {
                defaultFlags |= 1;
            }
            else if (notif.soundFile != null)
            {
                builder.setSound(notif.soundFile.name);
            }
            if (notif.defaultVibrate)
            {
                defaultFlags |= 2;
            }
            else if (notif.vibroPattern != null)
            {
                long[] pattern = notif.vibroPattern.ToArray();
                builder.setVibrate(pattern);
            }
            if (defaultFlags > 0)
            {
                builder.setDefaults(defaultFlags);
            }
            if (notif.number > 0)
            {
                builder.setNumber(notif.number);
            }
            if ((notif.group != null) && (notif.group.Length > 0))
            {
                builder.setGroup(notif.group);
            }
            if ((notif.sortKey != null) && (notif.sortKey.Length > 0))
            {
                builder.setSortKey(notif.sortKey);
            }
            if (notif.hasColor)
            {
                builder.setColor("#" + ColorUtils.ToHtmlStringRGB(notif.color));
            }
            builder.setGroupId(notif.groupId);
            builder.setAutoCancel(notif.autoCancel);
            builder.setAlertOnlyOnce(notif.alertOnce);
            if (notif.isRepeating)
            {
                builder.setRepeating(true);
                long num2     = ((notif.intervalHours * 0xe10) + (notif.intervalMinutes * 60)) + notif.intervalSeconds;
                long interval = num2 * 0x3e8L;
                builder.setInterval(interval);
            }
            long num4 = ((notif.delayHours * 0xe10) + (notif.delayMinutes * 60)) + notif.delaySeconds;
            long delayMilliseconds = num4 * 0x3e8L;

            builder.setDelay(delayMilliseconds);
            return(builder);
        }
Ejemplo n.º 10
0
        public static NotificationBuilder GetNotificationBuilderByIndex(int pos)
        {
            NotificationInstance notif = _dataHolder.notifications[pos];

            return(NotificationBuilder.FromInstance(notif));
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Builds notification from NotificationInstance - created in editor
        /// </summary>
        /// <param name="notif">Instance created in Notifications Window</param>
        /// <returns>Notification buildder</returns>
        public static NotificationBuilder FromInstance(NotificationInstance notif)
        {
            NotificationBuilder builder = new NotificationBuilder(notif.id, notif.title, notif.body);

            if (notif.smallIcon != null)
            {
                builder.setSmallIcon(notif.smallIcon.name);
            }

            if (notif.largeIcon != null)
            {
                builder.setLargeIcon(notif.largeIcon.name);
            }

            if (notif.ticker != null && notif.ticker.Length > 0)
            {
                builder.setTicker(notif.ticker);
            }

            int defaults = 0;

            // Handle sound
            if (notif.defaultSound)
            {
                defaults |= NotificationBuilder.DEFAULT_SOUND;
            }
            else
            {
                if (notif.soundFile != null)
                {
                    builder.setSound(notif.soundFile.name);
                }
            }

            // Handle vibrate
            if (notif.defaultVibrate)
            {
                defaults |= NotificationBuilder.DEFAULT_VIBRATE;
            }
            else
            {
                if (notif.vibroPattern != null)
                {
                    long[] vibratePattern = notif.vibroPattern.ToArray();
                    builder.setVibrate(vibratePattern);
                }
            }

            if (defaults > 0)
            {
                builder.setDefaults(defaults);
            }

            if (notif.number > 0)
            {
                builder.setNumber(notif.number);
            }

            if (notif.group != null && notif.group.Length > 0)
            {
                builder.setGroup(notif.group);
            }

            if (notif.sortKey != null && notif.sortKey.Length > 0)
            {
                builder.setSortKey(notif.sortKey);
            }

            if (notif.hasColor)
            {
                builder.setColor("#" + ColorUtility.ToHtmlStringRGB(notif.color));
            }

            builder.setAutoCancel(notif.autoCancel);
            builder.setAlertOnlyOnce(notif.alertOnce);

            // Repeating and interval
            if (notif.isRepeating)
            {
                builder.setRepeating(true);

                long intervalSeconds = notif.intervalHours * 3600 + notif.intervalMinutes * 60 + notif.intervalSeconds;
                long milis           = intervalSeconds * 1000;

                builder.setInterval(milis);
            }

            // Delay
            long delaySeconds = notif.delayHours * 3600 + notif.delayMinutes * 60 + notif.delaySeconds;
            long delayMilis   = delaySeconds * 1000;

            builder.setDelay(delayMilis);

            return(builder);
        }