private void UpdateNetworkState(NetworkInfo info)
{
NetworkState tempState = this.networkState;
this.networkState = NetworkState.Disconnected;
if (info != null && info.IsConnected)
{
this.networkState = NetworkState.Connected;
if (info.IsRoaming)
{
this.networkState |= NetworkState.Roaming;
}
if (info.IsFailover)
{
this.networkState |= NetworkState.IsFailOver;
}
this.networkState |= this.GetNetworkState(info);
}
this.stateChanged = this.stateChanged || this.networkState != tempState;
if (this.stateChanged)
{
Log.Debug(Tag,"LVLDL Network state changed: ");
Log.Debug(Tag,"LVLDL Starting State: {0}", tempState);
Log.Debug(Tag,"LVLDL Ending State: {0}", this.networkState);
if (this.IsServiceRunning)
{
if (this.networkState.HasFlag(NetworkState.Roaming))
{
this.Status = ExpansionDownloadStatus.WaitingForNetwork;
this.Control = ControlAction.Paused;
}
else if (this.networkState.HasFlag(NetworkState.IsCellular))
{
ServiceFlags flags = DownloadsDatabase.Flags;
if (!flags.HasFlag(ServiceFlags.FlagsDownloadOverCellular))
{
this.Status = ExpansionDownloadStatus.QueuedForWifi;
this.Control = ControlAction.Paused;
}
}
}
}
}