Skip to content

Commit

Permalink
Add dispose logic to viewmodels to remove localized strings from the …
Browse files Browse the repository at this point in the history
…`Localized` event
  • Loading branch information
aetherstrata committed Feb 15, 2024
1 parent 3730512 commit 810cbd0
Show file tree
Hide file tree
Showing 15 changed files with 317 additions and 226 deletions.
14 changes: 13 additions & 1 deletion Aosta.Ava/Aosta.Ava/Assets/Localization/en-US.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,13 @@
"Label.Date": "Date",
"Label.Episode.Number": "Episode #{0}",
"Label.Episodes": "Episodes",
"Label.Filler": "Filler",
"Label.LoadMore": "Load more",
"Label.LocalizationLookupError": "Localization not found for {0}",
"Label.NotAvailable.Long" : "Not available",
"Label.NotAvailable.Short" : "N/A",
"Label.Online": "Online",
"Label.Recap": "Recap",
"Label.Score": "Score",
"Label.Season": "Season",
"Label.Synopsis": "Synopsis",
Expand Down Expand Up @@ -89,6 +91,12 @@
"Enum.Season.Fall": "Fall",
"Enum.Season.Winter": "Winter",

"Enum.WatchingStatus.PlanToWatch": "Planned",
"Enum.WatchingStatus.Dropped": "Dropped",
"Enum.WatchingStatus.Completed": "Completed",
"Enum.WatchingStatus.OnHold": "On Hold",
"Enum.WatchingStatus.Watching": "Watching",

"Date.Compact.January": "{0} Jan {1}",
"Date.Compact.February": "{0} Feb {1}",
"Date.Compact.March": "{0} Mar {1}",
Expand All @@ -100,5 +108,9 @@
"Date.Compact.September": "{0} Sep {1}",
"Date.Compact.October": "{0} Oct {1}",
"Date.Compact.November": "{0} Nov {1}",
"Date.Compact.December": "{0} Dec {1}"
"Date.Compact.December": "{0} Dec {1}",

"Duration.Compact.Hours": "{0}h {1}m {2}s",
"Duration.Compact.Minutes": "{0}m {1}s",
"Duration.Compact.Seconds": "{0}s"
}
14 changes: 13 additions & 1 deletion Aosta.Ava/Aosta.Ava/Assets/Localization/it-IT.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,13 @@
"Label.Date": "Data",
"Label.Episode.Number": "Episodio n.{0}",
"Label.Episodes": "Episodi",
"Label.Filler": "Filler",
"Label.LoadMore": "Carica altro",
"Label.LocalizationLookupError": "Localizzazione non trovata per {0}",
"Label.NotAvailable.Long" : "Non disponibile",
"Label.NotAvailable.Short" : "N/D",
"Label.Online": "Online",
"Label.Recap": "Recap",
"Label.Score": "Voto",
"Label.Season": "Stagione",
"Label.Synopsis": "Sinossi",
Expand Down Expand Up @@ -88,6 +90,12 @@
"Enum.Season.Fall": "Autunno",
"Enum.Season.Winter": "Inverno",

"Enum.WatchingStatus.PlanToWatch": "Pianificato",
"Enum.WatchingStatus.Dropped": "Droppato",
"Enum.WatchingStatus.Completed": "Completato",
"Enum.WatchingStatus.OnHold": "In pausa",
"Enum.WatchingStatus.Watching": "In visione",

"Date.Compact.January": "{0}/01/{1}",
"Date.Compact.February": "{0}/02/{1}",
"Date.Compact.March": "{0}/03/{1}",
Expand All @@ -99,5 +107,9 @@
"Date.Compact.September": "{0}/09/{1}",
"Date.Compact.October": "{0}/10/{1}",
"Date.Compact.November": "{0}/11/{1}",
"Date.Compact.December": "{0}/12/{1}"
"Date.Compact.December": "{0}/12/{1}",

"Duration.Compact.Hours": "{0}o {1}m {2}s",
"Duration.Compact.Minutes": "{0}m {1}s",
"Duration.Compact.Seconds": "{0}s"
}
252 changes: 88 additions & 164 deletions Aosta.Ava/Aosta.Ava/Assets/Resources/DataTemplates.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,176 +15,100 @@
</DataTemplate>

<DataTemplate x:Key="AnimeInfoPill" DataType="detailsPill:AnimePill">
<StackPanel Spacing="10">
<Border Background="{DynamicResource PureColorBackgroundBrush}"
HorizontalAlignment="Left"
Padding="5"
CornerRadius="5">
<StackPanel Orientation="Horizontal">
<fluent:FontIcon Glyph="{StaticResource StarGlyph}"
Margin="5,0"
FontFamily="{StaticResource SymbolThemeFontFamily}"
Foreground="Gold" />
<TextBlock Text="{Binding Score}" />
</StackPanel>
</Border>
<Border Background="{DynamicResource PureColorBackgroundBrush}"
HorizontalAlignment="Left"
Padding="5"
CornerRadius="5">
<StackPanel Orientation="Horizontal">
<fluent:FontIcon Glyph="{StaticResource CalendarGlyph}"
Margin="5,0"
FontFamily="{StaticResource SymbolThemeFontFamily}" />
<ContentControl Content="{Binding Status}" />
</StackPanel>
</Border>
<Border Background="{DynamicResource AccentButtonBackground}"
HorizontalAlignment="Right"
Margin="15, 0"
Padding="15"
CornerRadius="15">
<Grid ColumnDefinitions="3*, 20, 3*, 20,2*"
RowDefinitions="Auto,Auto">
<TextBlock Grid.Row="0" Grid.Column="0"
Text="{localize:Localize Label.Episodes}"
FontWeight="Bold"
FontSize="18" />
<TextBlock Grid.Row="0" Grid.Column="2"
Text="{localize:Localize Label.Season}"
FontWeight="Bold"
FontSize="18" />
<TextBlock Grid.Row="0" Grid.Column="4"
Text="{localize:Localize Label.ContentType}"
FontWeight="Bold"
FontSize="18" />
<TextBlock Grid.Row="1" Grid.Column="0" Text="{Binding Episodes}" />
<TextBlock Grid.Row="1" Grid.Column="2">
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} | {1}">
<Binding Path="Season.Localized" />
<Binding Path="Year" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
<ContentControl Grid.Row="1" Grid.Column="4" Content="{Binding Type}" />
<Grid.Styles>
<Style Selector="TextBlock">
<Setter Property="Foreground" Value="{DynamicResource AccentButtonForeground}" />
<Setter Property="HorizontalAlignment" Value="Center" />
</Style>
</Grid.Styles>
</Grid>
</Border>
</StackPanel>
<Border Background="{DynamicResource AccentButtonBackground}"
HorizontalAlignment="Right"
Padding="15"
CornerRadius="15">
<Grid ColumnDefinitions="3*, 20, 3*, 20,2*"
RowDefinitions="Auto,Auto">
<TextBlock Grid.Row="0" Grid.Column="0"
Text="{localize:Localize Label.Episodes}"
FontWeight="Bold"
FontSize="18" />
<TextBlock Grid.Row="0" Grid.Column="2"
Text="{localize:Localize Label.Season}"
FontWeight="Bold"
FontSize="18" />
<TextBlock Grid.Row="0" Grid.Column="4"
Text="{localize:Localize Label.ContentType}"
FontWeight="Bold"
FontSize="18" />
<TextBlock Grid.Row="1" Grid.Column="0" Text="{Binding Episodes}" />
<TextBlock Grid.Row="1" Grid.Column="2">
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} | {1}">
<Binding Path="Season.Localized" />
<Binding Path="Year" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
<ContentControl Grid.Row="1" Grid.Column="4" Content="{Binding Type}" />
<Grid.Styles>
<Style Selector="TextBlock">
<Setter Property="Foreground" Value="{DynamicResource AccentButtonForeground}" />
<Setter Property="HorizontalAlignment" Value="Center" />
</Style>
</Grid.Styles>
</Grid>
</Border>
</DataTemplate>

<DataTemplate x:Key="EpisodeCountInfoPill" DataType="detailsPill:EpisodesPill">
<StackPanel Spacing="10">
<Border Background="{DynamicResource PureColorBackgroundBrush}"
HorizontalAlignment="Left"
Padding="5"
CornerRadius="5">
<StackPanel Orientation="Horizontal">
<fluent:FontIcon Glyph="{StaticResource StarGlyph}"
Margin="5,0"
FontFamily="{StaticResource SymbolThemeFontFamily}"
Foreground="Gold" />
<TextBlock Text="{Binding Score}" />
</StackPanel>
</Border>
<Border Background="{DynamicResource PureColorBackgroundBrush}"
HorizontalAlignment="Left"
Padding="5"
CornerRadius="5">
<StackPanel Orientation="Horizontal">
<fluent:FontIcon Glyph="{StaticResource CalendarGlyph}"
Margin="5,0"
FontFamily="{StaticResource SymbolThemeFontFamily}" />
<ContentControl Content="{Binding Status}" />
</StackPanel>
</Border>
<Border Background="{DynamicResource AccentButtonBackground}"
HorizontalAlignment="Right"
Margin="15, 0"
Padding="15"
CornerRadius="15">
<Grid ColumnDefinitions="3*, 20,2*"
RowDefinitions="Auto,Auto">
<TextBlock Grid.Row="0" Grid.Column="0"
Text="{localize:Localize Label.Episodes}"
FontWeight="Bold"
FontSize="18" />
<TextBlock Grid.Row="0" Grid.Column="2"
Text="{localize:Localize Label.ContentType}"
FontWeight="Bold"
FontSize="18" />
<TextBlock Grid.Row="1" Grid.Column="0" Text="{Binding Episodes}" />
<ContentControl Grid.Row="1" Grid.Column="2" Content="{Binding Type}" />
<Grid.Styles>
<Style Selector="TextBlock">
<Setter Property="Foreground" Value="{DynamicResource AccentButtonForeground}" />
<Setter Property="HorizontalAlignment" Value="Center" />
</Style>
</Grid.Styles>
</Grid>
</Border>
</StackPanel>

<Border Background="{DynamicResource AccentButtonBackground}"
HorizontalAlignment="Right"
Padding="15"
CornerRadius="15">
<Grid ColumnDefinitions="3*, 20,2*"
RowDefinitions="Auto,Auto">
<TextBlock Grid.Row="0" Grid.Column="0"
Text="{localize:Localize Label.Episodes}"
FontWeight="Bold"
FontSize="18" />
<TextBlock Grid.Row="0" Grid.Column="2"
Text="{localize:Localize Label.ContentType}"
FontWeight="Bold"
FontSize="18" />
<TextBlock Grid.Row="1" Grid.Column="0" Text="{Binding Episodes}" />
<ContentControl Grid.Row="1" Grid.Column="2" Content="{Binding Type}" />
<Grid.Styles>
<Style Selector="TextBlock">
<Setter Property="Foreground" Value="{DynamicResource AccentButtonForeground}" />
<Setter Property="HorizontalAlignment" Value="Center" />
</Style>
</Grid.Styles>
</Grid>
</Border>
</DataTemplate>

<DataTemplate x:Key="MovieInfoPill" DataType="detailsPill:MoviePill">
<StackPanel Spacing="10">
<Border Background="{DynamicResource PureColorBackgroundBrush}"
HorizontalAlignment="Left"
Padding="5"
CornerRadius="5">
<StackPanel Orientation="Horizontal">
<fluent:FontIcon Glyph="{StaticResource StarGlyph}"
Margin="5,0"
FontFamily="{StaticResource SymbolThemeFontFamily}"
Foreground="Gold" />
<TextBlock Text="{Binding Score}" />
</StackPanel>
</Border>
<Border Background="{DynamicResource PureColorBackgroundBrush}"
HorizontalAlignment="Left"
Padding="5"
CornerRadius="5">
<StackPanel Orientation="Horizontal">
<fluent:FontIcon Glyph="{StaticResource CalendarGlyph}"
Margin="5,0"
FontFamily="{StaticResource SymbolThemeFontFamily}" />
<ContentControl Content="{Binding Status}" />
</StackPanel>
</Border>
<Border Background="{DynamicResource AccentButtonBackground}"
HorizontalAlignment="Right"
Margin="15, 0"
Padding="15"
CornerRadius="15">
<Grid ColumnDefinitions="3*, 20,2*"
RowDefinitions="Auto,Auto">
<TextBlock Grid.Row="0" Grid.Column="0"
Text="{localize:Localize Label.Date}"
IsVisible="{Binding Date, Converter={converters:NullValueBoolConverter}}"
FontWeight="Bold"
FontSize="18" />
<TextBlock Grid.Row="0" Grid.Column="2"
Text="{localize:Localize Label.ContentType}"
FontWeight="Bold"
FontSize="18" />
<ContentControl Grid.Row="1" Grid.Column="0" Content="{Binding Date}"
IsVisible="{Binding Date, Converter={converters:NullValueBoolConverter}}" />
<ContentControl Grid.Row="1" Grid.Column="2" Content="{Binding Type}" />
<Grid.Styles>
<Style Selector="TextBlock">
<Setter Property="Foreground" Value="{DynamicResource AccentButtonForeground}" />
<Setter Property="HorizontalAlignment" Value="Center" />
</Style>
</Grid.Styles>
</Grid>
</Border>
</StackPanel>

<Border Background="{DynamicResource AccentButtonBackground}"
HorizontalAlignment="Right"
Padding="15"
CornerRadius="15">
<Grid ColumnDefinitions="3*, 20,2*"
RowDefinitions="Auto,Auto">
<TextBlock Grid.Row="0" Grid.Column="0"
Text="{localize:Localize Label.Date}"
IsVisible="{Binding Date, Converter={converters:NullValueBoolConverter}}"
FontWeight="Bold"
FontSize="18" />
<TextBlock Grid.Row="0" Grid.Column="2"
Text="{localize:Localize Label.ContentType}"
FontWeight="Bold"
FontSize="18" />
<ContentControl Grid.Row="1" Grid.Column="0" Content="{Binding Date}"
IsVisible="{Binding Date, Converter={converters:NullValueBoolConverter}}" />
<ContentControl Grid.Row="1" Grid.Column="2" Content="{Binding Type}" />
<Grid.Styles>
<Style Selector="TextBlock">
<Setter Property="Foreground" Value="{DynamicResource AccentButtonForeground}" />
<Setter Property="HorizontalAlignment" Value="Center" />
</Style>
</Grid.Styles>
</Grid>
</Border>
</DataTemplate>

<DataTemplate x:Key="JikanAnimeCard" DataType="card:JikanAnimeCardViewModel">
Expand Down
8 changes: 8 additions & 0 deletions Aosta.Ava/Aosta.Ava/Assets/Styles/DefaultStyles.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,19 @@
<Setter Property="Padding" Value="2"/>
</Style>

<Style Selector="ListBoxItem">
<Setter Property="Padding" Value="0"/>
</Style>

<!-- For the love of God, DO NOT SHOW THE SELECTION INDICATOR -->
<Style Selector="ListBoxItem:selected /template/ Rectangle#SelectionIndicator">
<Setter Property="IsVisible" Value="False"/>
</Style>

<Style Selector="ListBoxItem:pointerover /template/ ContentPresenter">
<Setter Property="Background" Value="Transparent" />
</Style>

<Style Selector="controls|SettingsExpanderItem">
<Setter Property="Background" Value="Transparent"/>
</Style>
Expand Down
10 changes: 10 additions & 0 deletions Aosta.Ava/Aosta.Ava/Extensions/ModelExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,16 @@ namespace Aosta.Ava.Extensions;

public static class ModelExtensions
{
public static LocalizedString Localize(this WatchingStatus status) => status switch
{
WatchingStatus.PlanToWatch => "Enum.WatchingStatus.PlanToWatch".Localize(),
WatchingStatus.Dropped => "Enum.WatchingStatus.Dropped".Localize(),
WatchingStatus.Completed => "Enum.WatchingStatus.Completed".Localize(),
WatchingStatus.OnHold => "Enum.WatchingStatus.OnHold".Localize(),
WatchingStatus.Watching => "Enum.WatchingStatus.Watching".Localize(),
_ => throw new ArgumentOutOfRangeException(nameof(status), status, error_message(nameof(WatchingStatus)))
};

public static LocalizedString Localize(this AiringStatus status) => status switch
{
AiringStatus.NotAvailable => "Label.NotAvailable.Long".Localize(),
Expand Down
Loading

0 comments on commit 810cbd0

Please sign in to comment.