Пример #1
0
        private Message CreateStatusMessage(VPN.ServiceStatus status, string lastError)
        {
            Message message = Message.Obtain(null, AndroidVPNService.MSG_STATUS, (int)status, 0);

            message.Data.PutString(MSG_STATUS_BUNDLE_LAST_ERROR, lastError);
            return(message);
        }
Пример #2
0
        /*
         * private void OnStop()
         * {
         *      try
         *      {
         *              SendStopMessage();
         *              OnStatusChanged(VPN.ServiceStatus.Stopped);
         *      }
         *      catch(Exception e)
         *      {
         *              OnStatusChanged(VPN.ServiceStatus.Stopped, e.Message);
         *      }
         * }
         */

        private void OnStatusChanged(bool?ready, VPN.ServiceStatus?status = null, string error = "")
        {
            lock (m_dataSync)
            {
                if (ready != null)
                {
                    m_ready = ready.Value;
                }
                else
                {
                    ready = m_ready;
                }

                if (status != null)
                {
                    m_status = status.Value;
                }
                else
                {
                    status = m_status;
                }

                m_lastError = error;
            }

            if (StatusChanged != null)
            {
                StatusChanged(ready.Value, status.Value, error);
            }
        }
Пример #3
0
        private void RefreshUI(bool ready, VPN.ServiceStatus status, string error)
        {
            if (ready)
            {
                m_status.Text = "Status: " + status.ToString();
            }
            else
            {
                m_status.Text = "Initializing...";
            }

            m_buttonStart.IsEnabled = ready && (status == VPN.ServiceStatus.Stopped);
            m_buttonStop.IsEnabled  = (status == VPN.ServiceStatus.Starting) || (status == VPN.ServiceStatus.Started);

            UpdateLastError(error);
        }
Пример #4
0
        private void DoChangeStatus(VPN.ServiceStatus status)
        {
            string lastError = "";

            lock (m_dataSync)
            {
                if (m_status == status)
                {
                    return;
                }

                m_status  = status;
                lastError = m_lastError;
            }

            DispatchMessage(CreateStatusMessage(status, lastError));
        }
Пример #5
0
 private void OnServiceStatusChanged(bool ready, VPN.ServiceStatus status, string error)
 {
     Device.BeginInvokeOnMainThread(() => RefreshUI(ready, status, error));
 }