Exemplo n.º 1
0
        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();
            }
        }
Exemplo n.º 2
0
        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;
        }