/// <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); }
/// <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); }
/// <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); }
/// <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"); } }
/// <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()); }
/// <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()); }
/// <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()); }
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); }
public static NotificationBuilder GetNotificationBuilderByIndex(int pos) { NotificationInstance notif = _dataHolder.notifications[pos]; return(NotificationBuilder.FromInstance(notif)); }
/// <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); }