public static void Set(Data.Obavijest obavijest) { Obavijesti_Za_Dan(DateTime.Now, obavijest); // POSTAVI OBAVIJESTI ZA DANAS Obavijesti_Za_Dan(DateTime.Now.AddDays(1), obavijest); // POSTAVI OBAVIJESTI ZA SUTRA Last_Notification(); }
public void stayNotification(Data.Obavijest obavijest) { if (obavijest == Data.Obavijest.Alarm) { Memory.skippedAlarms = Memory.skippedAlarms.Replace("[" + MemoryKey + "]", ""); } else if (obavijest == Data.Obavijest.Toast) { Memory.skippedToasts = Memory.skippedToasts.Replace("[" + MemoryKey + "]", ""); } Notification.Kreiraj_Novu_Obavijest(this, obavijest); }
public static async void Set(Data.Obavijest obavijest) { System.Diagnostics.Debug.WriteLine("Učitavanje podataka za " + Data.data.locationsDative[Memory.location]); Set_System_Tray("Učitavanje podataka za " + Data.data.locationsDative[Memory.location]); await System.Threading.Tasks.Task.Delay(20); Obavijesti_Za_Dan(DateTime.Now, obavijest); // POSTAVI OBAVIJESTI ZA DANAS Obavijesti_Za_Dan(DateTime.Now.AddDays(1), obavijest); // POSTAVI OBAVIJESTI ZA SUTRA Last_Notification(); await System.Threading.Tasks.Task.Delay(20); Set_System_Tray(); }
public bool isSkipped(Data.Obavijest obavijest) { if (obavijest == Data.Obavijest.Alarm) { return(Memory.skippedAlarms.Contains("[" + MemoryKey + "]")); } else if (obavijest == Data.Obavijest.Toast) { return(Memory.skippedToasts.Contains("[" + MemoryKey + "]")); } else { return(true); } }
public int notificationsOffset(Data.Obavijest obavijest) { if (obavijest == Data.Obavijest.Alarm) { return(predAlarm); } else if (obavijest == Data.Obavijest.Toast) { return(predToast); } else { return(0); } }
public bool blockedNotifications(Data.Obavijest obavijest) { if (obavijest == Data.Obavijest.Alarm) { return(blockedAlarm); } else if (obavijest == Data.Obavijest.Toast) { return(blockedToast); } else { return(true); } }
public void skipNotification(Data.Obavijest obavijest) { if (obavijest == Data.Obavijest.Alarm) { string tmp = Memory.skippedAlarms; tmp = tmp.Replace("[" + MemoryKey + "]", ""); tmp += "[" + MemoryKey + "]"; Memory.skippedAlarms = tmp; } else if (obavijest == Data.Obavijest.Toast) { string tmp = Memory.skippedToasts; tmp = tmp.Replace("[" + MemoryKey + "]", ""); tmp += "[" + MemoryKey + "]"; Memory.skippedToasts = tmp; } Notification.Obrisi_Obavijest(this.NotificationKey(obavijest)); }
public static void Obavijesti_Za_Dan(DateTime dt, Data.Obavijest obavijest) { for (int i = 0; i < Data.data.vakatNames.Count; i++) { Vakat vakat = new Vakat { time = Data.VakatTime(dt, i), name = Data.data.vakatNames[i], rbr = i }; if (obavijest == Data.Obavijest.All) { Kreiraj_Novu_Obavijest(vakat, Data.Obavijest.Alarm); Kreiraj_Novu_Obavijest(vakat, Data.Obavijest.Toast); } else { Kreiraj_Novu_Obavijest(vakat, obavijest); } } }
public static bool Obavijest_Postavljena(Vakat vakat, Data.Obavijest obavijest) { var notifier = ToastNotificationManager.CreateToastNotifier(); var scheduled = notifier.GetScheduledToastNotifications(); string key = vakat.NotificationKey(obavijest); if (vakat.isSkipped(obavijest)) { Obrisi_Obavijest(vakat.NotificationKey(obavijest)); return(true); } if (vakat.blockedNotifications(obavijest)) { Obrisi_Obavijest(key); return(true); } int predNotif = vakat.notificationsOffset(obavijest); for (int i = 0; i < scheduled.Count; i++) { if (scheduled[i].Id == key) { if (scheduled[i].DeliveryTime.DateTime == vakat.time.AddMinutes(-predNotif)) { System.Diagnostics.Debug.WriteLine("Obavijest [key]: " + key + " - već postoji..."); return(true); } else { System.Diagnostics.Debug.WriteLine("Obavijest [key]: " + key + " - na pogrešnom mjestu - BRIŠEM..."); ToastNotificationManager.CreateToastNotifier().RemoveFromSchedule(scheduled[i]); return(false); } } } return(false); }
public string NotificationKey(Data.Obavijest obavijest) { return((time.ToString("yy|MM|dd") + "|" + name.Substring(0, 2).ToLower() + "|" + (int)obavijest).ToLower()); }
public static void Kreiraj_Novu_Obavijest(Vakat vakat, Data.Obavijest obavijest) { if (vakat.time.AddMinutes(-vakat.notificationsOffset(obavijest)) <= DateTime.Now) { return; // Ako je prošlo vrijeme za obavijest - prekid } if (Obavijest_Postavljena(vakat, obavijest)) { return; // Ako je obavijest već postavljena - prekid // Ako je isključena - obrisati - prekid } string key = vakat.NotificationKey(obavijest); if (obavijest == Data.Obavijest.Alarm) { if (vakat.time <= DateTime.Now.AddMinutes(vakat.predAlarm)) { return; // Ako je prošlo vrijeme za alarm - prekid } try { string toastXmlString = ""; if (Fixed.IsPhone) { toastXmlString = "<toast duration=\"long\">\n" + "<visual>\n" + "<binding template=\"ToastText02\">\n" + "<text id=\"1\">" + vakat.name + " je za " + vakat.predAlarm + " minuta" + "</text>\n" + "<text id=\"2\">" + Fixed.App_Name + "</text>\n" + "</binding>\n" + "</visual>\n" + "<commands scenario=\"alarm\">\n" + "<command id=\"snooze\"/>\n" + "<command id=\"dismiss\"/>\n" + "</commands>\n" + "<audio src=\"" + Memory.Alarm_Sound + "\" loop=\"true\" />\n" + "</toast>\n"; } else { toastXmlString = "<toast duration=\"long\">\n" + "<visual>\n" + "<binding template=\"ToastText02\">\n" + "<text id=\"1\">" + vakat.name + " je za " + vakat.predAlarm + " minuta" + "</text>\n" + "<text id=\"2\">" + Fixed.App_Name + "</text>\n" + "</binding>\n" + "</visual>\n" + "<commands scenario=\"alarm\">\n" + "<command id=\"snooze\"/>\n" + "<command id=\"dismiss\"/>\n" + "</commands>\n" + "<audio src=\"ms-winsoundevent:Notification.Looping.Alarm2\" loop=\"true\" />\n" + "</toast>\n"; } XmlDocument doc = new XmlDocument(); doc.LoadXml(toastXmlString); ScheduledToastNotification scheduledToast = new ScheduledToastNotification(doc, vakat.time.AddMinutes(-vakat.predAlarm)); scheduledToast.Id = key; ToastNotificationManager.CreateToastNotifier().AddToSchedule(scheduledToast); System.Diagnostics.Debug.WriteLine("Alarm created at " + vakat.time.AddMinutes(-vakat.predToast) + " (" + vakat.name + ")"); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine("Greška pri registraciji alarma za " + vakat.name + " u vrijeme " + vakat.time.AddMinutes(-vakat.predToast) + " (" + ex.Message + ")"); } } else if (obavijest == Data.Obavijest.Toast) { if (vakat.time <= DateTime.Now.AddMinutes(vakat.predToast)) { return; // Ako je prošlo vrijeme za alarm - prekid } try { ToastTemplateType toastTemplate = ToastTemplateType.ToastText02; XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate); XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text"); toastTextElements[0].AppendChild(toastXml.CreateTextNode(vakat.name + " je za " + vakat.predToast + " minuta")); toastTextElements[1].AppendChild(toastXml.CreateTextNode("Utišajte zvukove uređaja!")); IXmlNode toastNode = toastXml.SelectSingleNode("/toast"); ((XmlElement)toastNode).SetAttribute("launch", "MainPage.xaml"); XmlElement audio = toastXml.CreateElement("audio"); if (Fixed.IsPhone) { audio.SetAttribute("src", Memory.Toast_Sound); } toastNode.AppendChild(audio); ScheduledToastNotification scheduledToast = new ScheduledToastNotification(toastXml, vakat.time.AddMinutes(-vakat.predToast)); scheduledToast.Id = key; ToastNotificationManager.CreateToastNotifier().AddToSchedule(scheduledToast); System.Diagnostics.Debug.WriteLine("Notification created at " + vakat.time.AddMinutes(-vakat.predToast) + " (" + vakat.name + ")"); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine("Greška pri registraciji notifikacije za " + vakat.name + " u vrijeme " + vakat.time.AddMinutes(-vakat.predToast) + " (" + ex.Message + ")"); } } }