public void RemoveListener(INetworkStatusReceiverListener l)
        {
            if (l == null || registeredListeners == null)
            {
                return;
            }

            registeredListeners.Remove(l);
        }
        private void NotifyState(INetworkStatusReceiverListener listener)
        {
            if (listener == null)
            {
                return;
            }

            if (CurrentNetworkType != NetworkType)
            {
                listener.OnNetworkTypeChanged();
            }

            switch (NetworkStatus)
            {
            case Status.NOT_AVAILABLE:
            {
                listener.OnNetworkStatusNotAvailable();
            }
            break;

            case Status.CONNECTED:
            {
                listener.OnNetworkStatusConnected();
            }
            break;

            case Status.IS_CONNECTING:
            {
                listener.OnNetworkStatusIsConnecting();
            }
            break;

            case Status.IS_DISCONNECTING:
            {
                listener.OnNetworkStatusIsDisonnecting();
            }
            break;

            case Status.SUSPENDED:
            {
                listener.OnNetworkStatusSuspended();
            }
            break;

            case Status.NOT_CONNECTED:
            {
                listener.OnNetworkStatusNotConnected();
            }
            break;

            default:
            {
                listener.OnNetworkStatusNotAvailable();
            }
            break;
            }
        }
        public void AddListener(INetworkStatusReceiverListener l)
        {
            if (l == null || registeredListeners == null)
            {
                return;
            }

            registeredListeners.Add(l);

            NotifyState(l);
        }