diff --git a/Screenbox.Core/ViewModels/AllVideosPageViewModel.cs b/Screenbox.Core/ViewModels/AllVideosPageViewModel.cs index b2b47a7c0..5477a50db 100644 --- a/Screenbox.Core/ViewModels/AllVideosPageViewModel.cs +++ b/Screenbox.Core/ViewModels/AllVideosPageViewModel.cs @@ -70,11 +70,5 @@ private void Play(MediaViewModel media) if (Videos.Count == 0) return; Messenger.SendQueueAndPlay(media, Videos, true); } - - [RelayCommand] - private void PlayNext(MediaViewModel media) - { - Messenger.SendPlayNext(media); - } } } diff --git a/Screenbox.Core/ViewModels/CommonViewModel.cs b/Screenbox.Core/ViewModels/CommonViewModel.cs index 61399f911..22606aa45 100644 --- a/Screenbox.Core/ViewModels/CommonViewModel.cs +++ b/Screenbox.Core/ViewModels/CommonViewModel.cs @@ -5,6 +5,7 @@ using CommunityToolkit.Mvvm.Messaging; using CommunityToolkit.Mvvm.Messaging.Messages; using Screenbox.Core.Enums; +using Screenbox.Core.Helpers; using Screenbox.Core.Messages; using Screenbox.Core.Services; using System; @@ -82,6 +83,12 @@ public bool TryGetPageState(string pageTypeName, int backStackDepth, out object return _pageStates.TryGetValue(pageTypeName + backStackDepth, out state); } + [RelayCommand] + private void PlayNext(MediaViewModel media) + { + Messenger.SendPlayNext(media); + } + [RelayCommand] private void OpenAlbum(AlbumViewModel? album) { diff --git a/Screenbox.Core/ViewModels/HomePageViewModel.cs b/Screenbox.Core/ViewModels/HomePageViewModel.cs index 81e86ccde..3e18e2f6a 100644 --- a/Screenbox.Core/ViewModels/HomePageViewModel.cs +++ b/Screenbox.Core/ViewModels/HomePageViewModel.cs @@ -275,12 +275,6 @@ private void Play(MediaViewModel media) } } - [RelayCommand] - private void PlayNext(MediaViewModel media) - { - Messenger.SendPlayNext(media); - } - [RelayCommand] private void Remove(MediaViewModel media) { diff --git a/Screenbox.Core/ViewModels/SongsPageViewModel.cs b/Screenbox.Core/ViewModels/SongsPageViewModel.cs index 8f9129ec2..bdff774a5 100644 --- a/Screenbox.Core/ViewModels/SongsPageViewModel.cs +++ b/Screenbox.Core/ViewModels/SongsPageViewModel.cs @@ -201,11 +201,5 @@ private void Play(MediaViewModel media) if (Songs.Count == 0) return; Messenger.SendQueueAndPlay(media, Songs); } - - [RelayCommand] - private void PlayNext(MediaViewModel media) - { - Messenger.SendPlayNext(media); - } } } diff --git a/Screenbox/App.xaml b/Screenbox/App.xaml index 001a0945c..ca6eab49a 100644 --- a/Screenbox/App.xaml +++ b/Screenbox/App.xaml @@ -38,15 +38,11 @@ - + x:Key="EmptyObjectToVisibilityConverter" + EmptyValue="Collapsed" + NotEmptyValue="Visible" /> + Visibility="{x:Bind ThumbnailSource, Converter={StaticResource EmptyObjectToVisibilityConverter}, ConverterParameter=true, Mode=OneWay}"> + + diff --git a/Screenbox/Pages/AlbumDetailsPage.xaml b/Screenbox/Pages/AlbumDetailsPage.xaml index 19ad4c5fe..be3dfd927 100644 --- a/Screenbox/Pages/AlbumDetailsPage.xaml +++ b/Screenbox/Pages/AlbumDetailsPage.xaml @@ -2,6 +2,7 @@ x:Class="Screenbox.Pages.AlbumDetailsPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:commands="using:Screenbox.Commands" xmlns:controls="using:Screenbox.Controls" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:extensions="using:Screenbox.Controls.Extensions" @@ -23,6 +24,42 @@ + + + + + + + + + + + + + + @@ -81,7 +118,7 @@ + Visibility="{x:Bind ViewModel.Source.AlbumArt, Mode=OneWay, Converter={StaticResource EmptyObjectToVisibilityConverter}, ConverterParameter=true}"> + diff --git a/Screenbox/Pages/AllVideosPage.xaml b/Screenbox/Pages/AllVideosPage.xaml index d1495c3e5..7bedd71ed 100644 --- a/Screenbox/Pages/AllVideosPage.xaml +++ b/Screenbox/Pages/AllVideosPage.xaml @@ -3,7 +3,6 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:commands="using:Screenbox.Commands" - xmlns:controls="using:Screenbox.Controls" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:interactions="using:Screenbox.Controls.Interactions" xmlns:interactivity="using:Microsoft.Xaml.Interactivity" @@ -12,7 +11,6 @@ xmlns:strings="using:Screenbox.Strings" xmlns:triggers="using:CommunityToolkit.WinUI" xmlns:ui="using:CommunityToolkit.WinUI" - xmlns:viewModels="using:Screenbox.Core.ViewModels" mc:Ignorable="d"> @@ -28,7 +26,7 @@ Icon="{ui:SymbolIcon Symbol=Play}" Text="{strings:Resources Key=Play}" /> + Visibility="{Binding Key.AlbumArt, Converter={StaticResource EmptyObjectToVisibilityConverter}, ConverterParameter=true}"> + + + + + + + + + + + + + + @@ -332,6 +369,7 @@ AlternateBackground="{ThemeResource CardBackgroundFillColorDefaultBrush}" AlternateBorderBrush="{ThemeResource CardStrokeColorDefaultBrush}" AlternateBorderThickness="1" /> + diff --git a/Screenbox/Pages/HomePage.xaml b/Screenbox/Pages/HomePage.xaml index 0b7922393..5f29fb050 100644 --- a/Screenbox/Pages/HomePage.xaml +++ b/Screenbox/Pages/HomePage.xaml @@ -30,7 +30,7 @@ Icon="{ui:SymbolIcon Symbol=Play}" Text="{strings:Resources Key=Play}" /> + + + Visibility="{x:Bind ViewModel.Media.Thumbnail, Mode=OneWay, Converter={StaticResource EmptyObjectToVisibilityConverter}, ConverterParameter=true}"> + + + + + + + + + + + + + + + @@ -156,7 +198,7 @@ AlternateBackground="{ThemeResource CardBackgroundFillColorDefaultBrush}" AlternateBorderBrush="{ThemeResource CardStrokeColorDefaultBrush}" AlternateBorderThickness="1" /> - + diff --git a/Screenbox/Pages/Search/SongSearchResultPage.xaml b/Screenbox/Pages/Search/SongSearchResultPage.xaml index 39e9b0270..9e158c183 100644 --- a/Screenbox/Pages/Search/SongSearchResultPage.xaml +++ b/Screenbox/Pages/Search/SongSearchResultPage.xaml @@ -2,6 +2,7 @@ x:Class="Screenbox.Pages.SongSearchResultPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:commands="using:Screenbox.Commands" xmlns:controls="using:Screenbox.Controls" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:extensions="using:Screenbox.Controls.Extensions" @@ -13,6 +14,49 @@ xmlns:triggers="using:CommunityToolkit.WinUI" xmlns:ui="using:CommunityToolkit.WinUI" mc:Ignorable="d"> + + + + + + + + + + + + + + + + @@ -59,7 +103,7 @@ AlternateBackground="{ThemeResource CardBackgroundFillColorDefaultBrush}" AlternateBorderBrush="{ThemeResource CardStrokeColorDefaultBrush}" AlternateBorderThickness="1" /> - + diff --git a/Screenbox/Pages/Search/SongSearchResultPage.xaml.cs b/Screenbox/Pages/Search/SongSearchResultPage.xaml.cs index a16cc0a01..fab72c9b2 100644 --- a/Screenbox/Pages/Search/SongSearchResultPage.xaml.cs +++ b/Screenbox/Pages/Search/SongSearchResultPage.xaml.cs @@ -14,7 +14,7 @@ namespace Screenbox.Pages /// public sealed partial class SongSearchResultPage : Page { - internal SearchResultPageViewModel? ViewModel { get; set; } + internal SearchResultPageViewModel? ViewModel { get; private set; } internal CommonViewModel Common { get; } diff --git a/Screenbox/Pages/SettingsPage.xaml b/Screenbox/Pages/SettingsPage.xaml index 5f58450d8..4f471fc0f 100644 --- a/Screenbox/Pages/SettingsPage.xaml +++ b/Screenbox/Pages/SettingsPage.xaml @@ -323,7 +323,7 @@ Margin="{StaticResource SettingsCardMargin}" Header="{strings:Resources Key=SettingsGesturesHeader}" HeaderIcon="{ui:FontIcon Glyph=}" - Visibility="{x:Bind helpers:SystemInformation.IsXbox, Converter={StaticResource InverseBoolToVisibilityConverter}}"> + Visibility="{x:Bind helpers:SystemInformation.IsXbox, Converter={StaticResource BoolToVisibilityConverter}, ConverterParameter=true}"> diff --git a/Screenbox/Pages/SongsPage.xaml b/Screenbox/Pages/SongsPage.xaml index 25efecebe..8685e3453 100644 --- a/Screenbox/Pages/SongsPage.xaml +++ b/Screenbox/Pages/SongsPage.xaml @@ -33,7 +33,7 @@ Icon="{ui:SymbolIcon Symbol=Play}" Text="{strings:Resources Key=Play}" /> + + + /// Looks up a localized string similar to: Show album + /// + public static string ShowAlbum + { + get + { + return _resourceLoader.GetString("ShowAlbum"); + } + } + #endregion + + #region ShowArtist + /// + /// Looks up a localized string similar to: Show artist + /// + public static string ShowArtist + { + get + { + return _resourceLoader.GetString("ShowArtist"); + } + } + #endregion } [global::System.CodeDom.Compiler.GeneratedCodeAttribute("DotNetPlus.ReswPlus", "2.1.3")] @@ -3227,6 +3253,8 @@ public enum KeyEnum File, MusicLibrary, VideoLibrary, + ShowAlbum, + ShowArtist, } private static ResourceLoader _resourceLoader; diff --git a/Screenbox/Strings/en-US/Resources.resw b/Screenbox/Strings/en-US/Resources.resw index 81190e9c3..77e0ab3cf 100644 --- a/Screenbox/Strings/en-US/Resources.resw +++ b/Screenbox/Strings/en-US/Resources.resw @@ -869,4 +869,10 @@ Videos + + Show album + + + Show artist + \ No newline at end of file