diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-10-16 03:37:30 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-10-16 03:37:30 +0300 |
| commit | e02200b716c3c83bdd95e202c0d1bcae56882037 (patch) | |
| tree | c940bc0d50ee90c9b5f17a501534829bc618c4b0 /Software/Visual_Studio/PPC/Tango.PPC.UI | |
| parent | 3dad2354fa07e71210bb0308406558ae3b96b54c (diff) | |
| download | Tango-e02200b716c3c83bdd95e202c0d1bcae56882037.tar.gz Tango-e02200b716c3c83bdd95e202c0d1bcae56882037.zip | |
Implemented PPC LAN connectivity indicator.
Diffstat (limited to 'Software/Visual_Studio/PPC/Tango.PPC.UI')
| -rw-r--r-- | Software/Visual_Studio/PPC/Tango.PPC.UI/Connectivity/DefaultConnectivityProvider.cs | 44 | ||||
| -rw-r--r-- | Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainView.xaml | 15 |
2 files changed, 58 insertions, 1 deletions
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Connectivity/DefaultConnectivityProvider.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Connectivity/DefaultConnectivityProvider.cs index 53e143def..d35e7e184 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Connectivity/DefaultConnectivityProvider.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Connectivity/DefaultConnectivityProvider.cs @@ -4,6 +4,7 @@ using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; using System.Net; +using System.Net.NetworkInformation; using System.Text; using System.Threading; using System.Threading.Tasks; @@ -29,7 +30,9 @@ namespace Tango.PPC.UI.Connectivity private IMachineProvider _machineProvider; private Rfc2898Cryptographer _cryptographer; private System.Timers.Timer _updateTimer; + private System.Timers.Timer _lanUpdateTimer; private WiFiNetwork _connectedNetwork; + private PPCSettings _settings; /// <summary> /// Occurs when the connectivity provider state has changed (e.g network connected/disconnected). @@ -43,7 +46,17 @@ namespace Tango.PPC.UI.Connectivity public bool IsConnected { get { return _isConnected; } - set { _isConnected = value; RaisePropertyChangedAuto(); } + private set { _isConnected = value; RaisePropertyChangedAuto(); } + } + + private bool _isLanConnected; + /// <summary> + /// Gets a value indicating whether there is LAN connection. + /// </summary> + public bool IsLanConnected + { + get { return _isLanConnected; } + private set { _isLanConnected = value; RaisePropertyChangedAuto(); } } private bool _isHotspoActive; @@ -116,6 +129,8 @@ namespace Tango.PPC.UI.Connectivity { await RefreshAvailableWiFiNetworks(); }); + + _settings = SettingsManager.Default.GetOrCreate<PPCSettings>(); } /// <summary> @@ -153,6 +168,28 @@ namespace Tango.PPC.UI.Connectivity _updateTimer = new System.Timers.Timer(TimeSpan.FromSeconds(30).TotalMilliseconds); _updateTimer.Elapsed += _updateTimer_Elapsed; _updateTimer.Start(); + + _lanUpdateTimer = new System.Timers.Timer(TimeSpan.FromSeconds(10).TotalMilliseconds); + _lanUpdateTimer.Elapsed += _lanUpdateTimer_Elapsed; + _lanUpdateTimer.Start(); + } + + private void _lanUpdateTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) + { + foreach (NetworkInterface net in NetworkInterface.GetAllNetworkInterfaces()) + { + if ((net.NetworkInterfaceType == NetworkInterfaceType.Ethernet + || net.NetworkInterfaceType == NetworkInterfaceType.Ethernet3Megabit + || net.NetworkInterfaceType == NetworkInterfaceType.FastEthernetFx + || net.NetworkInterfaceType == NetworkInterfaceType.FastEthernetT + || net.NetworkInterfaceType == NetworkInterfaceType.GigabitEthernet) && net.OperationalStatus == OperationalStatus.Up) + { + IsLanConnected = true; + return; + } + } + + IsLanConnected = false; } /// <summary> @@ -223,6 +260,11 @@ namespace Tango.PPC.UI.Connectivity /// <returns></returns> public Task<bool> CheckInternetConnection() { + if (_settings.BypassInternetConnectivityCheck) + { + return Task.FromResult(true); + } + return Task.Factory.StartNew<bool>(() => { try diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainView.xaml index 4bafcf607..2e36347a3 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainView.xaml +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainView.xaml @@ -47,6 +47,21 @@ </touch:TouchIcon.Style> </touch:TouchIcon> + <touch:TouchIcon Margin="10 0 0 0" Width="18" Height="18" VerticalAlignment="Center"> + <touch:TouchIcon.Style> + <Style TargetType="touch:TouchIcon" BasedOn="{StaticResource {x:Type touch:TouchIcon}}"> + <Setter Property="Icon" Value="LanDisconnect"></Setter> + <Setter Property="Foreground" Value="{StaticResource TangoGrayBrush}"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding ConnectivityProvider.IsLanConnected}" Value="True"> + <Setter Property="Icon" Value="LanConnect"></Setter> + <Setter Property="Foreground" Value="{StaticResource TangoSuccessBrush}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </touch:TouchIcon.Style> + </touch:TouchIcon> + <touch:TouchIcon Margin="10 0 0 0" Width="18" Height="18" VerticalAlignment="Center" Foreground="{StaticResource TangoSuccessBrush}" Icon="AccessPointNetwork" Visibility="{Binding HotSpotProvider.IsEnabled,Converter={StaticResource BooleanToVisibilityConverter}}" /> <touch:TouchIcon Margin="10 0 0 0" Width="18" Height="18" VerticalAlignment="Center" Icon="Bridge" Visibility="{Binding ExternalBridgeService.Enabled,Converter={StaticResource BooleanToVisibilityConverter}}"> |
