public void ReceivedRemoteNotication(string _notificationPayload)
        {
            if (!m_isRegisteredForRemoteNotifications)
            {
                return;
            }

            CrossPlatformNotification _notification = CrossPlatformNotification.CreateNotificationFromPayload(_notificationPayload);

            if (_notification == null)
            {
                EditorUtility.DisplayDialog("Push Notification Service", "Failed to push notification. Please enter a valid JSON payload.", "Ok");
                return;
            }

            // In edit mode, all received notifications are cached
            if (IsEditMode())
            {
                RemoteNotifications.Add(_notification);

                // Play sound
                if ((SupportedNotificationTypes & NotificationType.Sound) != 0)
                {
                    EditorApplication.Beep();
                }

                // Show alert message
                if ((SupportedNotificationTypes & NotificationType.Alert) != 0)
                {
                    bool _viewNotification = DisplayAlertDialog(_notification);

                    if (_viewNotification)
                    {
                        OnTappingRemoteNotification(_notification);
                    }
                }
            }
            // In play mode, received notification are sent to event listener
            else
            {
                SendRemoteNotification(_notification, false);
            }

            // Redraws inspector
            EditorUtility.SetDirty(this);
        }