private void UpdateConnected(bool triggerChange = true)
        {
            var remoteHostStatus = Reachability.RemoteHostStatus();
            var internetStatus   = Reachability.InternetConnectionStatus();
            var localWifiStatus  = Reachability.LocalWifiConnectionStatus();

            var previouslyConnected = isConnected;

            isConnected = internetStatus == NetworkStatus.ReachableViaWiFiNetwork ||
                          localWifiStatus == NetworkStatus.ReachableViaWiFiNetwork ||
                          remoteHostStatus == NetworkStatus.ReachableViaWiFiNetwork;

            if (triggerChange && (previouslyConnected != isConnected || previousInternetStatus != internetStatus))
            {
                OnConnectivityChanged(new ConnectivityChangedEventArgs {
                    IsConnected = isConnected
                });
            }
            previousInternetStatus = internetStatus;
        }