public void ButtonEvt_EnableNotification() { _isActive = !_isActive; if (_isActive) { _check.gameObject.SetActive(_isActive); var newList = new List <int>(); foreach (var reminder in LWData.current.Notifications[_index].Notifications) { var dateTime = DateTime.Parse(reminder.Value); #if UNITY_ANDROID var notification = LWNotificationManager.CreateNotification(LWNotificationManager.NotificationType.Water, dateTime); newList.Add(AndroidNotificationCenter.SendNotification(notification, LWConfig.NotificationChannel)); #endif } LWData.current.Notifications[_index].Ids.Clear(); LWData.current.Notifications[_index].Ids = newList; LWData.current.Notifications[_index].IsActive = true; SerializationManager.Save(LWConfig.DataSaveName, LWData.current); } else { _check.gameObject.SetActive(_isActive); CleanUp(); } }
private void Evt_Save(int index, string time) { if (!_isChanged) { return; } if (index < LWData.current.Notifications.Count) { var oldNotifs = LWData.current.Notifications[index].Ids; foreach (var notif in oldNotifs) { #if UNITY_ANDROID AndroidNotificationCenter.CancelNotification(notif); #endif } LWData.current.Notifications[index].Notifications.Clear(); } var newNotif = (_isNew) ? new LWData.NotificationData() { Notifications = new Dictionary <DayOfWeek, string>() } : LWData.current.Notifications[index]; Debug.Log("Parsed time is: " + DateTime.Parse(time)); newNotif.Time = time; newNotif.IsActive = true; var inputTime = time.Split(':'); for (var i = 0; i < _weekButtons.Length; i++) { if (_weekButtons[i].Active) { var today = DateTime.Today; var newDatetime = new DateTime(today.Year, today.Month, today.Day, int.Parse(inputTime[0]), int.Parse(inputTime[1]), 0); var dayofweek = i; var todayDay = (int)today.DayOfWeek; newDatetime = todayDay <= dayofweek?newDatetime.AddDays(dayofweek - todayDay) : newDatetime.AddDays(7 - (todayDay - dayofweek)); Debug.Log(newDatetime.ToShortTimeString()); Debug.Log(newDatetime.ToShortDateString()); #if UNITY_ANDROID var notification = LWNotificationManager.CreateNotification(LWNotificationManager.NotificationType.Water, newDatetime); newNotif.Notifications.Add((DayOfWeek)i, newDatetime.ToString(CultureInfo.InvariantCulture)); newNotif.Ids.Add(AndroidNotificationCenter.SendNotification(notification, LWConfig.NotificationChannel)); #endif } } if (_isNew) { LWData.current.Notifications.Add(newNotif); CreateReminder(newNotif, index); } SerializationManager.Save(LWConfig.DataSaveName, LWData.current); _isChanged = false; _isNew = false; }