Ejemplo n.º 1
0
 public void iOSCancelAll()
 {
     foreach (var ntf in listNtfs)
     {
         NotificationServices.CancelLocalNotification(ntf);
     }
     listNtfs.Clear();
     setApplicationIconBadgeNumber(0);
 }
Ejemplo n.º 2
0
 void OnAppPause(bool paused)
 {
     if (!paused)
     {
         foreach (var ntf in listNtfs)
         {
             NotificationServices.CancelLocalNotification(ntf);
         }
         listNtfs.Clear();
         setApplicationIconBadgeNumber(0);
     }
 }
Ejemplo n.º 3
0
 internal bool DestroyNotification(PPNotification notification)
 {
     foreach (LocalNotification iOSNotification in NotificationServices.localNotifications)
     {
         if (notificationMatch(notification, iOSNotification))
         {
             NotificationServices.CancelLocalNotification(iOSNotification);
             return(true);
         }
     }
     return(false);
 }
Ejemplo n.º 4
0
        public override void CancelNotification(int id)
        {
            if (!CheckInitialized())
            {
                return;
            }

            string idAsString = id.ToString();

            if (NotificationServices.localNotifications != null)
            {
                foreach (var notification in NotificationServices.localNotifications)
                {
                    if (notification.userInfo.Contains(m_idKeyName) && (string)notification.userInfo[m_idKeyName] == idAsString)
                    {
                        NotificationServices.CancelLocalNotification(notification);
                        return;
                    }
                }
            }

            if (NotificationServices.scheduledLocalNotifications != null)
            {
                foreach (var notification in NotificationServices.scheduledLocalNotifications)
                {
                    if (notification.userInfo.Contains(m_idKeyName) && (string)notification.userInfo[m_idKeyName] == idAsString)
                    {
                        NotificationServices.CancelLocalNotification(notification);
                        return;
                    }
                }
            }

            if (m_scheduledNotificationsWhenDisabled != null)
            {
                bool found = false;
                for (int i = m_scheduledNotificationsWhenDisabled.Count - 1; i >= 0; --i)
                {
                    var notification = m_scheduledNotificationsWhenDisabled[i];
                    if (notification.userData.ContainsKey(m_idKeyName) && notification.userData[m_idKeyName] == idAsString)
                    {
                        found = true;
                        m_scheduledNotificationsWhenDisabled.RemoveAt(i);
                    }
                }

                if (found)
                {
                    SaveScheduledNotificationsWhenDisabled();
                }
            }
        }
Ejemplo n.º 5
0
        private void CleanupDuplications()
        {
            const float CHECK_INTERVAL = 1.1f;

            float time = UnityEngine.Time.unscaledTime;

            if (time - lastDuplicationCheck < CHECK_INTERVAL)
            {
                return;
            }
            lastDuplicationCheck = time;

            var dictionary = new Dictionary <int, List <LocalNotification> >();

            if (NotificationServices.scheduledLocalNotifications != null)
            {
                foreach (var notification in NotificationServices.scheduledLocalNotifications)
                {
                    int id = notification.userInfo != null?ExtractId(notification.userInfo) : -1;

                    if (dictionary.ContainsKey(id))
                    {
                        dictionary[id].Add(notification);
                    }
                    else
                    {
                        dictionary.Add(id, new List <LocalNotification> {
                            notification
                        });
                    }
                }
            }

            foreach (var entry in dictionary)
            {
                var list = entry.Value;
                if (list.Count > 1)
                {
                    UnityEngine.Debug.Log("UTNotifications: local notification duplication with id " + entry.Key + " detected. Cleaning up.");

                    // Sort by timestamps (newest first)
                    list.Sort((x, y) => ExtractTimestamp(y.userInfo).CompareTo(ExtractTimestamp(x.userInfo)));

                    // Remove outdated duplications
                    for (int i = 1; i < list.Count; ++i)
                    {
                        NotificationServices.CancelLocalNotification(list[i]);
                    }
                }
            }
        }
Ejemplo n.º 6
0
    public void CancelScheduleLocalNotification(int type)
    {
#if UNITY_IPHONE
        foreach (var notif in NotificationServices.scheduledLocalNotifications)
        {
            if (notif.userInfo != null && notif.userInfo.Contains(userInfoKey_Type) && (int)notif.userInfo[userInfoKey_Type] == type)
            {
#if ENABLE_NOTIFICATION_LOG
                Debug.Log("[SysNotification] Cancel scheduled local Notification : " + Log(notif));
#endif

                NotificationServices.CancelLocalNotification(notif);

                return;
            }
        }
#endif
    }
Ejemplo n.º 7
0
        private void HideNotification(LocalNotification notification)
        {
            if (notification.repeatInterval > CalendarUnit.Era)
            {
                LocalNotification replacementNotification = new LocalNotification();
                replacementNotification.applicationIconBadgeNumber = notification.applicationIconBadgeNumber;
                replacementNotification.alertAction    = notification.alertAction;
                replacementNotification.alertBody      = notification.alertBody;
                replacementNotification.repeatInterval = notification.repeatInterval;
                replacementNotification.hasAction      = notification.hasAction;
                replacementNotification.soundName      = notification.soundName;
                replacementNotification.userInfo       = notification.userInfo;
                replacementNotification.fireDate       = RepeatIntervalToDateTime(notification.repeatInterval);

                NotificationServices.ScheduleLocalNotification(replacementNotification);
            }

            NotificationServices.CancelLocalNotification(notification);
        }