feat: Add macOS VLC native bundling and improve UI styling

- Added AsyncImageLoader package for improved image loading.
- Implemented macOS native VLC library bundling with a script to fetch and copy necessary files.
- Enhanced PlayerView UI with updated colors and improved layout for better user experience.
- Refactored media playback logic in PlayerView to handle buffering and errors more gracefully.
- Updated Playlists and Programs views to use consistent styling and improved text colors.
- Introduced a new settings layout with better organization and visual appeal.
This commit is contained in:
Vladimir
2026-03-22 16:58:11 +02:00
parent f0cbf709b6
commit f995625460
11 changed files with 761 additions and 164 deletions
@@ -1,5 +1,6 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:asyncImageLoader="clr-namespace:AsyncImageLoader;assembly=AsyncImageLoader.Avalonia"
x:Class="TV_Player.AvaloniaApp.Views.ProgramsListView">
<Grid>
<ListBox ItemsSource="{Binding Programs}"
@@ -11,26 +12,23 @@
ScrollViewer.VerticalScrollBarVisibility="Auto">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="12" />
<WrapPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Button Width="106"
Height="145"
Margin="3"
Margin="5"
Classes="card"
Background="#B0000000"
BorderBrush="Yellow"
BorderThickness="2"
Command="{Binding DataContext.SelectProgramCommand, RelativeSource={RelativeSource AncestorType=UserControl}}"
CommandParameter="{Binding}">
<Grid Margin="1" Background="#B0000000" RowDefinitions="*,Auto">
<Image Source="{Binding Logo}" MaxWidth="100" Margin="0,0,0,10" Stretch="Uniform" />
<Grid Margin="1" Background="Transparent" RowDefinitions="*,Auto">
<Image asyncImageLoader:ImageLoader.Source="{Binding Logo}" MaxWidth="100" Margin="0,0,0,10" Stretch="Uniform" />
<TextBlock Grid.Row="1"
Text="{Binding Name}"
FontSize="15"
Foreground="White"
Foreground="#111827"
TextWrapping="Wrap"
TextAlignment="Center"
Margin="1,0,1,2"