Channel selector - warning if out of date

This commit is contained in:
pizzaboxer 2023-07-13 13:29:27 +01:00
parent 054379d4f0
commit e683af373d
No known key found for this signature in database
GPG Key ID: 59D4A1DBAD0F2BA8
2 changed files with 15 additions and 1 deletions

View File

@ -61,6 +61,7 @@
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
@ -75,6 +76,11 @@
<TextBlock Grid.Row="2" Grid.Column="0" Margin="0,0,16,0" VerticalAlignment="Center" Text="Deployed" />
<TextBlock Grid.Row="2" Grid.Column="1" Foreground="{DynamicResource TextFillColorTertiaryBrush}" Text="{Binding ChannelDeployInfo.Timestamp, Mode=OneWay}" />
<StackPanel Grid.Row="3" Grid.ColumnSpan="2" Margin="0,16,0,0" Orientation="Horizontal" Visibility="{Binding ChannelWarningVisibility, Mode=OneWay}">
<Image Grid.Column="0" Width="24" Height="24" RenderOptions.BitmapScalingMode="HighQuality" Source="pack://application:,,,/Resources/MessageBox/Warning.png" />
<TextBlock Margin="8,0,0,0" VerticalAlignment="Center" Text="This channel may be out of date, as it was last deployed to over a month ago." />
</StackPanel>
</Grid>
<Grid Column="0">
<Grid.Style>
@ -93,6 +99,7 @@
</Grid.ColumnDefinitions>
<ui:ProgressRing Grid.Column="0" Margin="6" IsIndeterminate="True" Visibility="{Binding LoadingSpinnerVisibility, Mode=OneWay}" />
<Image Grid.Column="0" Margin="6" Width="60" Height="60" Visibility="{Binding LoadingErrorVisibility, Mode=OneWay}" RenderOptions.BitmapScalingMode="HighQuality" Source="pack://application:,,,/Resources/MessageBox/Error.png" />
<TextBlock Grid.Column="1" Margin="16" VerticalAlignment="Center" Text="{Binding ChannelInfoLoadingText, Mode=OneWay}" />
</Grid>
</StackPanel>

View File

@ -40,6 +40,11 @@ namespace Bloxstrap.UI.ViewModels.Menu
{
ClientVersion info = await RobloxDeployment.GetInfo(channel, true);
if (info.Timestamp?.AddMonths(1) < DateTime.Now)
ChannelWarningVisibility = Visibility.Visible;
else
ChannelWarningVisibility = Visibility.Collapsed;
ChannelDeployInfo = new DeployInfo
{
Version = info.Version,
@ -47,13 +52,14 @@ namespace Bloxstrap.UI.ViewModels.Menu
Timestamp = info.Timestamp?.ToFriendlyString()!
};
OnPropertyChanged(nameof(ChannelWarningVisibility));
OnPropertyChanged(nameof(ChannelDeployInfo));
}
catch (Exception)
{
LoadingSpinnerVisibility = Visibility.Collapsed;
LoadingErrorVisibility = Visibility.Visible;
ChannelInfoLoadingText = "Could not get deployment information. Is the channel name valid?";
ChannelInfoLoadingText = "Could not get deployment information! Is the channel name valid?";
OnPropertyChanged(nameof(LoadingSpinnerVisibility));
OnPropertyChanged(nameof(LoadingErrorVisibility));
@ -63,6 +69,7 @@ namespace Bloxstrap.UI.ViewModels.Menu
public Visibility LoadingSpinnerVisibility { get; private set; } = Visibility.Visible;
public Visibility LoadingErrorVisibility { get; private set; } = Visibility.Collapsed;
public Visibility ChannelWarningVisibility { get; private set; } = Visibility.Collapsed;
public DeployInfo? ChannelDeployInfo { get; private set; } = null;
public string ChannelInfoLoadingText { get; private set; } = null!;