From 7280e072a2d7e2cf3c83624890d75dead9d86ee8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20K=C3=B6ssler?= Date: Tue, 23 Apr 2024 19:08:54 +0200 Subject: [PATCH] Prevent crash if custom icon is deleted from disk --- Guard/Views/Controls/TokenCard.xaml.cs | 30 ++++++++++++++++---------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/Guard/Views/Controls/TokenCard.xaml.cs b/Guard/Views/Controls/TokenCard.xaml.cs index 405a0f1..f2904ad 100644 --- a/Guard/Views/Controls/TokenCard.xaml.cs +++ b/Guard/Views/Controls/TokenCard.xaml.cs @@ -67,21 +67,29 @@ internal TokenCard(TOTPTokenHelper token) } else { - if (icon.Path != null && icon.Path.AbsolutePath.EndsWith(".svg")) + if (icon.Path != null && File.Exists(icon.Path.AbsolutePath)) { - SvgIconView.Source = icon.Path; + if (icon.Path.AbsolutePath.EndsWith(".svg")) + { + SvgIconView.Source = icon.Path; + } + else + { + ImageIconView.Visibility = Visibility.Visible; + SvgIconView.Visibility = Visibility.Collapsed; + + var bitmap = new BitmapImage(); + bitmap.BeginInit(); + bitmap.CacheOption = BitmapCacheOption.OnLoad; + bitmap.UriSource = icon.Path; + bitmap.EndInit(); + ImageIconView.Source = bitmap; + } } else { - ImageIconView.Visibility = Visibility.Visible; - SvgIconView.Visibility = Visibility.Collapsed; - - var bitmap = new BitmapImage(); - bitmap.BeginInit(); - bitmap.CacheOption = BitmapCacheOption.OnLoad; - bitmap.UriSource = icon.Path; - bitmap.EndInit(); - ImageIconView.Source = bitmap; + icon = IconManager.GetIcon("default", IconManager.IconType.Default); + SvgIconView.SvgSource = icon.Svg; } } }