From 55c0b27ea0bde45678cd5f84379bdf18d1868e79 Mon Sep 17 00:00:00 2001 From: atomsk-0 Date: Mon, 3 Mar 2025 12:26:30 +0200 Subject: [PATCH] Don't show packages already added + small code cleanup and added "placeholder" image to be shown if pkLogo for some reason is null --- Assets/no_img64.png | Bin 0 -> 1099 bytes Dialogs/AppListDialog.xaml.cs | 51 +++++++++++++--------------------- 2 files changed, 20 insertions(+), 31 deletions(-) create mode 100644 Assets/no_img64.png diff --git a/Assets/no_img64.png b/Assets/no_img64.png new file mode 100644 index 0000000000000000000000000000000000000000..38814467844df3cf71f32e403028e6f98098907e GIT binary patch literal 1099 zcmV-R1ho5!P)0R7L;)|NZ^_zrVlL)z#0>&-L~7=;-Lw z)YJd~0EdT%%gf6=JUnD%WT2p+Q&Us#@9zZ#1+ucTKR-VZ5D@iGEh2L}gNS64ebJ32Z#Mn*=rx3{04pWfcyCnqNG(cA0Hp5r>Ci@srUEyBO@bcXJ^gL%?Sw!_V)J7 z%*+A;0&s9}78Vw*t*xxAtT#6|5<*kg0007lNkl*#u`)s;3oFEKb|L7$h<+%#XA(uEB}tkT8naL zedYsN>YW5cQ(uHl%*48&$R0j`xz_~5!03`HcaWhM-Y{QcKSoH|YnmB8aY09D&gQC?J$Y~BAU>k3IJOF(gGM+(` z*1!XhE8K!^dx1IW_tbqXFnfsYV4NMg4laN^6SC^PfY8U;w^(3pBaF4e=eh>u-sA&O zLZ_YPw_HEf z1#GXB`gq4x6jg}Pk}KF+9t1$?WeLz*iqElY^KIC6R*dex=xyhKz#gh#fHv7&a?*Wi zUpY$YxEMX)Jda(+f&e&3XWYPwcBzjKokmWbCo8ms^nwHikbl<=lwB~qa`&+@#hL{yRYU4;>kw4ltD=12P~3GVmV(zX1R#;Xykh R0r3C;002ovPDHLkV1i0l@}B?z literal 0 HcmV?d00001 diff --git a/Dialogs/AppListDialog.xaml.cs b/Dialogs/AppListDialog.xaml.cs index 2e0e15e..e68359e 100644 --- a/Dialogs/AppListDialog.xaml.cs +++ b/Dialogs/AppListDialog.xaml.cs @@ -10,13 +10,13 @@ using Image = Microsoft.UI.Xaml.Controls.Image; namespace WinDurango.UI.Dialogs { - public sealed partial class AppListDialog : ContentDialog + public sealed partial class AppListDialog { - public List Pkgs { get; set; } = new List(); + public List Packages { get; set; } public AppListDialog(List packages, bool multiSelect = false) { - this.Pkgs = packages; + this.Packages = packages; this.DataContext = this; @@ -35,15 +35,13 @@ namespace WinDurango.UI.Dialogs var listView = (ListView)sender; - foreach (var pkg in Pkgs) + foreach (Package pkg in Packages) { - var item = new ListViewItem(); - item.MinWidth = 200; - - var stackPanel = new StackPanel - { - Orientation = Orientation.Horizontal - }; + // if we already have the package "installed" we will skip it (not show it in the AppListView) + if (App.InstalledPackages.GetPackages().Find(p => p.FamilyName == pkg.Id.FamilyName) != null) continue; + + ListViewItem item = new() { MinWidth = 200 }; + StackPanel stackPanel = new() { Orientation = Orientation.Horizontal }; // NOTE: DO NOT TOUCH THIS MAGICAL SHIT // it throws massive error if the image is invalid somehow or whatever... @@ -51,21 +49,23 @@ namespace WinDurango.UI.Dialogs try { pkLogo = pkg.Logo; - } catch (Exception ex) { - Logger.WriteError($"pkg.Logo threw {ex.GetType().ToString()} for {pkg.Id.FamilyName}"); + } + catch (Exception ex) + { + Logger.WriteError($"pkg.Logo threw {ex.GetType()} for {pkg.Id.FamilyName}"); Logger.WriteException(ex); } - var packageLogo = new Image + // Some app logos are "empty" but pkg.Logo isn't null on them, why microsoft?? + Image packageLogo = new() { Width = 64, Height = 64, Margin = new Thickness(5), - Source = new BitmapImage(pkLogo ?? new Uri("ms-appx:///Assets/testimg.png")) + Source = new BitmapImage(pkLogo ?? new Uri("ms-appx:///Assets/no_img64.png")) }; - //packageLogo.ImageFailed += LogoFailed; - var packageInfo = new StackPanel + StackPanel packageInfo = new() { Orientation = Orientation.Vertical, Margin = new Thickness(5) @@ -81,16 +81,13 @@ namespace WinDurango.UI.Dialogs displayName = pkg.Id.Name; } - var packageName = new TextBlock + TextBlock packageName = new() { Text = displayName ?? "Unknown", FontWeight = FontWeights.Bold }; - var publisherName = new TextBlock - { - Text = pkg.PublisherDisplayName ?? "Unknown" - }; + TextBlock publisherName = new() { Text = pkg.PublisherDisplayName ?? "Unknown" }; packageInfo.Children.Add(packageName); packageInfo.Children.Add(publisherName); @@ -105,15 +102,7 @@ namespace WinDurango.UI.Dialogs listView.Items.Add(item); } } - - - - private void LogoFailed(object sender, ExceptionRoutedEventArgs e) - { - //var image = sender as Image; - //image.Source = new BitmapImage(new Uri("ms-appx:///Assets/testimg.png")); - } - + private void AddToAppList(ContentDialog sender, ContentDialogButtonClickEventArgs args) { foreach (ListViewItem listViewItem in appListView.SelectedItems)