From 72982c7ab8745187eef8e4d0ee75820d96122c9b Mon Sep 17 00:00:00 2001 From: Winston de Jong Date: Sun, 7 Mar 2021 23:47:52 -0800 Subject: [PATCH 01/16] Added the ability to pin sidebar items to start --- Files/App.xaml.cs | 2 + Files/Assets/TileBaseLogo.png | Bin 0 -> 17845 bytes Files/Assets/Tiles/TileBaseLogo.png | Bin 0 -> 17845 bytes Files/Files.csproj | 8 +- Files/Filesystem/ListedItem.cs | 6 ++ .../UniversalStorageEnumerator.cs | 4 +- .../Win32StorageEnumerator.cs | 2 +- Files/Helpers/SecondaryTileHelper.cs | 98 ++++++++++++++++++ Files/UserControls/SidebarControl.xaml | 9 ++ Files/UserControls/SidebarControl.xaml.cs | 15 +++ Files/ViewModels/ItemViewModel.cs | 6 +- 11 files changed, 144 insertions(+), 6 deletions(-) create mode 100644 Files/Assets/TileBaseLogo.png create mode 100644 Files/Assets/Tiles/TileBaseLogo.png create mode 100644 Files/Helpers/SecondaryTileHelper.cs diff --git a/Files/App.xaml.cs b/Files/App.xaml.cs index 321c4dcaea6a..d8adfa4e5b8b 100644 --- a/Files/App.xaml.cs +++ b/Files/App.xaml.cs @@ -58,6 +58,8 @@ sealed partial class App : Application private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + public static SecondaryTileHelper SecondaryTileHelper { get; private set; } = new SecondaryTileHelper(); + public static class AppData { // Get the extensions that are available for this host. diff --git a/Files/Assets/TileBaseLogo.png b/Files/Assets/TileBaseLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..9d845f9ee4e1f28b675f8471ea0b5e43ec85aebb GIT binary patch literal 17845 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ξ%FG?B3R_! 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ξ%FG?B3R_! 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 - + + BasicPreview.xaml @@ -609,6 +610,8 @@ + + @@ -1021,6 +1024,9 @@ 2.0.4 + + 1.25.0 + diff --git a/Files/Filesystem/ListedItem.cs b/Files/Filesystem/ListedItem.cs index ac0eee67b0ae..8fb951fed5bc 100644 --- a/Files/Filesystem/ListedItem.cs +++ b/Files/Filesystem/ListedItem.cs @@ -99,6 +99,12 @@ public BitmapImage FileImage } } + bool isItemPinnedToStart; + public bool IsItemPinnedToStart { + get => isItemPinnedToStart; + set => SetProperty(ref isItemPinnedToStart, value); + } + private BitmapImage iconOverlay; [JsonIgnore] diff --git a/Files/Filesystem/StorageEnumerators/UniversalStorageEnumerator.cs b/Files/Filesystem/StorageEnumerators/UniversalStorageEnumerator.cs index b7ec54fc5607..5757eadfc520 100644 --- a/Files/Filesystem/StorageEnumerators/UniversalStorageEnumerator.cs +++ b/Files/Filesystem/StorageEnumerators/UniversalStorageEnumerator.cs @@ -175,8 +175,8 @@ private static async Task AddFolderAsync(StorageFolder folder, Stora ItemPath = string.IsNullOrEmpty(folder.Path) ? Path.Combine(currentStorageFolder.Path, folder.Name) : folder.Path, LoadUnknownTypeGlyph = false, FileSize = null, - FileSizeBytes = 0 - //FolderTooltipText = tooltipString, + FileSizeBytes = 0, + IsItemPinnedToStart = App.SecondaryTileHelper.CheckFolderPinned(folder.Path), }; } return null; diff --git a/Files/Filesystem/StorageEnumerators/Win32StorageEnumerator.cs b/Files/Filesystem/StorageEnumerators/Win32StorageEnumerator.cs index 64d5f70e1f6a..bd8c9da1941e 100644 --- a/Files/Filesystem/StorageEnumerators/Win32StorageEnumerator.cs +++ b/Files/Filesystem/StorageEnumerators/Win32StorageEnumerator.cs @@ -163,7 +163,7 @@ CancellationToken cancellationToken FileSize = null, FileSizeBytes = 0, ContainsFilesOrFolders = FolderHelpers.CheckForFilesFolders(itemPath), - //FolderTooltipText = tooltipString, + IsItemPinnedToStart = App.SecondaryTileHelper.CheckFolderPinned(itemPath) }; } diff --git a/Files/Helpers/SecondaryTileHelper.cs b/Files/Helpers/SecondaryTileHelper.cs new file mode 100644 index 000000000000..c6af96f2da7d --- /dev/null +++ b/Files/Helpers/SecondaryTileHelper.cs @@ -0,0 +1,98 @@ +using Files.Filesystem; +using Microsoft.Graphics.Canvas; +using Microsoft.Graphics.Canvas.UI.Xaml; +using Microsoft.Toolkit.Uwp.Notifications; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Windows.Storage; +using Windows.UI; +using Windows.UI.Notifications; +using Windows.UI.StartScreen; +using TileSize = Windows.UI.StartScreen.TileSize; + +namespace Files.Helpers +{ + public class SecondaryTileHelper + { + public bool CheckFolderPinned(string path) + { + return SecondaryTile.Exists(GetTileID(path)); + } + + ///

+ /// Gets a tile-id to be used from a folder path + /// + /// + /// + private string GetTileID(string path) + { + return $"folder-{path.Replace("\\", "").Replace(":", "")}"; + } + + public async Task PinFolderAsync(string path, string name, string glyph) + { + var file = await GenerateAssetAsync(glyph, GetTileID(name)); + + SecondaryTile tile = new SecondaryTile( + GetTileID(path), + name, + path, + new Uri("ms-appx:///Assets/Tiles/Files Icon.png"), + TileSize.Default); + + TileContent content = new TileContent() + { + Visual = new TileVisual() + { + TileMedium = new TileBinding() + { + Content = new TileBindingContentAdaptive() + { + Children = + { + new AdaptiveImage() + { + Source = $"{file.Path}", + } + } + } + } + } + }; + + + tile.VisualElements.ShowNameOnSquare150x150Logo = true; + var result = await tile.RequestCreateAsync(); + + // Generate the tile notification content and update the tile + TileUpdateManager.CreateTileUpdaterForSecondaryTile(tile.TileId).Update(new TileNotification(content.GetXml())); + return result; + } + + public async Task GenerateAssetAsync(string glyph, string id) + { + var image = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/Tiles/TileBaseLogo.png")); + + CanvasDevice device = CanvasDevice.GetSharedDevice(); + CanvasRenderTarget offscreen = new CanvasRenderTarget(device, 259, 229, 32); + using CanvasDrawingSession ds = offscreen.CreateDrawingSession(); + ds.Clear(Colors.Transparent); + var thing = await CanvasBitmap.LoadAsync(device, await image.OpenAsync(FileAccessMode.Read)); + ds.DrawImage(thing); + ds.DrawText(glyph, 60, 60, Colors.Black, new Microsoft.Graphics.Canvas.Text.CanvasTextFormat() + { + FontFamily = "Segoe Fluent Icons", + FontSize = 90 + }); + + ds.Flush(); + var saveFile = await Windows.Storage.ApplicationData.Current.LocalFolder.CreateFileAsync($"{id}.png", CreationCollisionOption.ReplaceExisting); + await offscreen.SaveAsync(await saveFile.OpenAsync(FileAccessMode.ReadWrite), CanvasBitmapFileFormat.Png); + return saveFile; + } + } +} diff --git a/Files/UserControls/SidebarControl.xaml b/Files/UserControls/SidebarControl.xaml index f39936b2c41c..9c294af8bf4d 100644 --- a/Files/UserControls/SidebarControl.xaml +++ b/Files/UserControls/SidebarControl.xaml @@ -191,6 +191,15 @@ + + + + + Date: Mon, 8 Mar 2021 13:59:55 -0800 Subject: [PATCH 02/16] Removed dynamic generation, began moving to pre-generated assets --- Files/Assets/Tiles/TileBaseLogo.png | Bin 17845 -> 0 bytes Files/Assets/Tiles/tile-0.png | Bin 0 -> 3085 bytes Files/Assets/Tiles/tile-59155.png | Bin 0 -> 5165 bytes Files/Assets/Tiles/tile-59214.png | Bin 0 -> 4286 bytes Files/Assets/Tiles/tile-59219.png | Bin 0 -> 4127 bytes Files/Assets/Tiles/tile-59534.png | Bin 0 -> 3924 bytes Files/Assets/Tiles/tile-59542.png | Bin 0 -> 3881 bytes Files/Assets/Tiles/tile-59553.png | Bin 0 -> 4259 bytes Files/Assets/Tiles/tile-59557.png | Bin 0 -> 4216 bytes Files/Assets/Tiles/tile-59570.png | Bin 0 -> 3933 bytes Files/Assets/Tiles/tile-59598.png | Bin 0 -> 4022 bytes Files/Assets/Tiles/tile-59644.png | Bin 0 -> 4195 bytes Files/Assets/Tiles/tile-60319.png | Bin 0 -> 4430 bytes Files/Assets/Tiles/tile-60495.png | Bin 0 -> 4201 bytes Files/Assets/Tiles/tile-60834.png | Bin 0 -> 3640 bytes Files/Files.csproj | 44 +++++++++++++++++-- Files/Helpers/SecondaryTileHelper.cs | 61 +++++---------------------- 17 files changed, 51 insertions(+), 54 deletions(-) delete mode 100644 Files/Assets/Tiles/TileBaseLogo.png create mode 100644 Files/Assets/Tiles/tile-0.png create mode 100644 Files/Assets/Tiles/tile-59155.png create mode 100644 Files/Assets/Tiles/tile-59214.png create mode 100644 Files/Assets/Tiles/tile-59219.png create mode 100644 Files/Assets/Tiles/tile-59534.png create mode 100644 Files/Assets/Tiles/tile-59542.png create mode 100644 Files/Assets/Tiles/tile-59553.png create mode 100644 Files/Assets/Tiles/tile-59557.png create mode 100644 Files/Assets/Tiles/tile-59570.png create mode 100644 Files/Assets/Tiles/tile-59598.png create mode 100644 Files/Assets/Tiles/tile-59644.png create mode 100644 Files/Assets/Tiles/tile-60319.png create mode 100644 Files/Assets/Tiles/tile-60495.png create mode 100644 Files/Assets/Tiles/tile-60834.png diff --git a/Files/Assets/Tiles/TileBaseLogo.png b/Files/Assets/Tiles/TileBaseLogo.png deleted file mode 100644 index 9d845f9ee4e1f28b675f8471ea0b5e43ec85aebb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17845 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ξ%FG?B3R_! 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 literal 0 HcmV?d00001 diff --git a/Files/Assets/Tiles/tile-59214.png b/Files/Assets/Tiles/tile-59214.png new file mode 100644 index 0000000000000000000000000000000000000000..ee326e7f6c012360fd6847fea7f34475f856cd6c GIT binary patch literal 4286 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 literal 0 HcmV?d00001 diff --git a/Files/Assets/Tiles/tile-59542.png b/Files/Assets/Tiles/tile-59542.png new file mode 100644 index 0000000000000000000000000000000000000000..6edb397ff9006c208af2019467151390c671c979 GIT binary patch literal 3881 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 Xt<(Xtr+~wM-h!iM)}|%K)Y$(3pd7yD literal 0 HcmV?d00001 diff --git a/Files/Assets/Tiles/tile-59553.png b/Files/Assets/Tiles/tile-59553.png new file mode 100644 index 0000000000000000000000000000000000000000..63a033d0c5f5d104168cf5e1eca5cc025c1dc756 GIT binary patch literal 4259 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 literal 0 HcmV?d00001 diff --git a/Files/Assets/Tiles/tile-59557.png b/Files/Assets/Tiles/tile-59557.png new file mode 100644 index 0000000000000000000000000000000000000000..d1d02e88f5d394ee95dd6f57f81c05657f5a92c7 GIT binary patch literal 4216 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 CE|K8? literal 0 HcmV?d00001 diff --git a/Files/Assets/Tiles/tile-59570.png b/Files/Assets/Tiles/tile-59570.png new file mode 100644 index 0000000000000000000000000000000000000000..dd33c102b26becfcece52757a2d884269c03b754 GIT binary patch literal 3933 zcmcInc{r4P_y5ikV;}Uiq3r6hN3xV%cr8g8B+V#7h!$h#Mh~NGrIdY&#H%dBQ1&NE zB} zY7YPc77+l$1%J+6E4sv4UAH$k2Bn?if58j1r;&{j02L{G8*V$`HBW$r^K}3OTR1PG z&A-SU78Wc`jm`w0XXN-LN;vFo+db7#zthwdWf9C&-Xo&?NcD_}fEJ?h;hrR6{cdCO zViM(#^_Y4dKOS@wDNgev=8wA%$z<|DXD`00)GF^Uqjhx3h@a1+K6~1%%F73{#PHk( zjrM@B+0G9cdO_cYSu8n&Mz!nKxjJ3!Y>gnCF6`F-;vr8S{9p|YyJZ#)iX-F`Y427u z_8Ht3sI0E0QXLVQ#*9`z`6sr0`L8dkX;2%fkL*~-z+stVA73Svr7;K1ci{s%>r|~@ zUiBKOGPsA&+q$r}AvoPZv!p@@kXmdKr{O% znr|Q8v0$<^lh~6H#*SE9xO3E#Kh(eDr<#V4W%-s5i}}DcYWAhXQ*Xwmr=7n!=vGVY zX!4yM+Wr3br9wB#g}BK2$WZ?|eB+X62v^(fw)L*q5#SzEyq3~*?R`OI+$Y%+&7<^|>I3$b55B%(lZkzeHTC|lZm&7qV`c{#0tl(C16n=j*=)Xj1e;tU&t zPymM(J%|B0gf`Wjh~+ zIEkluXOgt9Ci_0Di0XLnAL*Fe#Um{R1f;})Zt-FV^Ih2a+L^t*vaJaYL?mk?2XM|X z5MgOR`RgH8U18&eOh|iP1letIgL1Qmty^p>aZV#J)_cKC|BE(AdQ4N#6Y`F znUH_XTQw?lolLnpfyHnmqPz9qNMoRJ1w&-Bn}8HnoadDr^xWgjixfUY_k}p)aanf8 z_jXr@ysKm`RCW5PHhmeiA)jvj#H|SKTS3Q<+tvE_6IM1)?jJtJo=1s!8fcY!FZ)+e zkG=5jG?^oA-sq${o)3>3Yum@Q6f=&&KQxAo5{*Nn0bNvcs4e#d|Kg&=T>p&eCT#blY{k`#c+0z>sgg`?jirCWpj zqi6NnsN>iJjV9kEtPSoKUybF-yw58^<$RJL+stt*g7Up2%zbK1$}+{N?V9(gyv4=h z3k>`%5ztu?b(|h)?f$Zyj1LW^6h%qm!uTb@aC6ke(N7yCi9%u(I0LZQbi@*9zngID zVg0kvavG$fW7JUUL#t(nWq z(`1K5Y3dVN=ND4|8WK&scig{7Hi_M%kkqsi(nVi-I6onM!W#n^fk?vVI}VY-&CK8H zj`lphHxZ*Y>nrD1H9BzD0!M);Zi zWSxHD$+Idd|JV=W$2LU~-I^Xx*khIbg=0&4Azq5f!6Z_3y45a(T2I&tRKq+<;dLXv z=WUvFn=~=;y+=fpFLlNiHmRO4t*Hv*{@K|RTc~LS%c0zA6bEGU&zjey>GWj;!9vvZ zhE+)rXgO}hZQXQ8`mxJd28gS%0DHEo_Xv;lsDRMfdlC>oM6z{Jabf^j!0#PHy5b#z z?v{YotfNV@UTneU@*G1LoAnz641IZ&qqy$LKogb5Fft3MWh-DmDxaPK`%}?IrVpME zHlZ~Yc%^GEKDm+Q0rqr?!hTG>dc~miM*6q$L(gXb*2Sm}bPGlEf8&7>+QB#m8srrL zBtIoYs)A$JVnO3H{Uyy##WX^^Shk!NpAb}PgHW;#;Foj!)u z5!8IM(;P4%?cD42wk_@_#5{vt-|V|6!az0ubP!JVXWzQbFS=%-=a@C;FXq@rm+LrN z(Hd^>=93Cobpd>n&$cu?95hDg$@XQJoKz}MUdd&f%~>AVt zD-%Q4+S*i391c_pG*lF z8th2dK)=xnm2P*|+VqH9Rm2b2KGKNOS-9RXu3`2x3@)C+2EW z&E1SSKTjAfosa291nUxz&Z%xC#f+RjWf!;*VH9OgXO6YPRY5~Iddl4)%Mr>EGw^mV z@}ii(bk?>uZYFAnnh@zy##a4C|hya#JWYK*?z(0toBLaakq9gA+g|{$7jbU zFqv?#V4#BSu$}*^=7Fy8fEM!|PGbcJs;a(otHBx+l-J#7;SO--s)V4%FgYW&(#>{N zHQVuK=XQUqz+Y7UU&hF3z~Z22)9-+<)1*EAzKR*;wAlu{TFb`edyB!sG`! zNZ;*Jkd|LK{NGYQHK)ou;c<=sgndZo`-BKc;fJm!<-Wb0xI(RiX@Se*HrlWWt}O;$ zSpAOU+rKGRelUp8G}}(jHMG}VYj+NDBEaTug0Dhg`=@Je2t+skzbWE}=seKP!*>`3 zSBB13=)u%jdPvi^xgAzU5zgf+EErElFjNBDahwAAb@B3UFd_ozkyCEr`Ayz--&cw{O5=YN_!T~dCKiZX~q78K!DWCy18q|Mg621TW*CXef{%Wiy zHr8A#e1wzIbIh1+d4c1tfvYHaAS5S_N4%POs5ioI=CtsmA@%+rhezTop6~SIBwM@j z6n!W;nXmr7&xe)j9G}wpOM88G+NanQhN)N2fK2Z%w{X;vF6u`k=lc?;Lm5aiOKS+R zVJw19(@|ZpzO9}ULLKmbrY?U6cvbt9CXdoC-2B#l>Ybg7^|L8XTYB`VBDG6%O8AeM zDJt$LnFAQ8PXvkU*+}Zw2i2RyE%!>Nw6XZ1<+3Av*wfAxERj^;Rj}FKdDJ?XKbty( zyEvlOKtyymSR{kPKnr&s8`rlxB5t3X33V6&kDneiJbiu#aaMfs^`m)~F_Mql;mDo1 znzi-<;hbvwDqhHpf=X3JOY1)06dsqb#G2kX3%e0l7s3tC3l80agko8Ybgl2L?fI4U zdHdTg3@VbS2FUvBPvNnq;&N!1ViiW4^FxA)oGL!32MG&1WC51$R0j@T2E$S)j_uLv z5yawqK$@ZX->8P0Jg0rXQZt@@XZsN?IMQh1O2%rPA3l zNXdFWOgyxo=SKNEsii0&%yfHkl!F*Z$J00dTxOp}5O|{r3S<{<2~+OVN3dA+Jg$g; z9vAavQ6IE;vdL>H7$^Yabrx-eox#Ky8n%Y-Tl9W0Z==X|0tc6jCB@Ovx(B7d_6C%3 zB^g{{a^GZ|VUf{)N|L6Njo4g#VK3T}ZmQbFilJH_L8P^+YJVSA=()?PCt5#s^Y$8& jrsMu!e~qa}BqZ3}zVcq8DfV-}aUd+sY)wmz2{Hcys1yh^ literal 0 HcmV?d00001 diff --git a/Files/Assets/Tiles/tile-59598.png b/Files/Assets/Tiles/tile-59598.png new file mode 100644 index 0000000000000000000000000000000000000000..23c25b5d7fc8c0b21e8a8d89bba44ff1dc99b019 GIT binary patch literal 4022 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 literal 0 HcmV?d00001 diff --git a/Files/Assets/Tiles/tile-59644.png b/Files/Assets/Tiles/tile-59644.png new file mode 100644 index 0000000000000000000000000000000000000000..17ac29b6f77b4fffc85a0862aace3b56a3b056ce GIT binary patch literal 4195 zcmcIni91zY)Zgc3R$RPEnTHG+GGr_nGGxq4gbX(~Gm+^=xRfy_=WctvE)^dh5)I_r0no%Mu580!U@GcB#Xx>;+< zVno_?){3*peccPMqjj=sgoH&!MfKTtaqLeOVwbZe$1*C|^(Avw0@{yHtZZT`d^=V$ zNXvD;bDcAjJHb!m53A-cWZn-Y?OnvI#-L%V{y!d6C%vUSbcV?@+rg76mvg#nJ1^md zj&sD2LhY6gE*&{}?|^WDb5rY=P(iv=NYhK?M;>4!n-EmQ#*{?hN=rr;ZpU52OWwcf7#*>Vq3~ik%$_)6`g6@`ax38kfQ9%Ib+!m6; zUSr3s)F$D*Rmr2!+B>H9B>RuQ1gmM@JQ6uoL^}blQx|Sus|#%$W~8}MS)1c&QV{!3 zzQ|=PX(h$Rp-6Z7gUbX^*M9Jr^jxiNb$jeVTe(qm`R0tGuqXDQ@10SCyMtyHu@nO0 z`zK~;aU-ZVQW>Gsj!jD;U%h!unL} z>G;~Qz@?bHA^W>_FXN0jk{H4T=y1fq!g)_@Cwc4RJ>rD8>iIos!nk0_Z(il`Qq+KW z&$wSXv3OxSoLi$E$p=i&wvaZq)Vyz#ZVsfJT2z*$f&s4n%3iyYsl0yD&6+U`jRbiK z-`Wx=%t3hj{R3tOe_L6qBM z;KiB@<4kTa75uJcwo_T$Tj{4S<7W>ZzQ3}Nr}&rK#qEWL5~&6$pb-3~crPpTbH*XA znrtx5i81)){QZ?6&3NT%#r$i6K>$RhZaUo^FT*u{;eIx8Bkk3Wi}W}(60|ox-?2|= zOd)^#6{1Ww$dAlTTeB-Ra@#G?4B4{3+tG@g0oseA~JNRYUc|QDN}(Q}H}^&=`4( zLQedKU5j6&*5T@EWWj-}R87h~oXbxdu{(*4q`mO@l_1T!s;IxuK`6HjkgMjC!h7at z?Y>kGXF?4nGM`b~UTKLFqxL=UBF_`XyccW8?CWu$50b83%8QSi2rI5wrPTa&FpybE zzFUn8dMnr}KU7z|50utdU(n&w#W1^vs+h7L7>cpf==!V2Q7-O9Z2}--ZYyzSIqzd$egqeJua#XzL#ri876N*SVNiQ=Xo2&LWQP0|D`$x|8%4+@^Cz3v<+!r4_HzWPAphPZ^W@G)pe*n9ijbgxktNMLs}D442E!VhVo$8pS1aY@gB*q`wHz; ztIbe2_j@}koOp(3XDTUJ&PgTd*GI98NZ>69O%I+E|AUE62JEZ{cg8bN# zf`^=CPXoUd`Ifq$1{ghXNt6vW{3Ev7lKaN&=uH8hq@8qHr!V(NN!>FZ8TfIVN`LSp zx_|jYt(--lwoOl&$GchC7CA1=EXFv-_Dr$d_}#@$NB9MD=-Hh3fv9H zp7L=hOlIiuKK|vHF_F5I?mPgc{stRbt^w6@Uv&mYVox5O7xwm%G6mSP1yiaZ4LqLh zzRn2~X@LYj5e)(}o`xY3tttKi=*a^!5Yp(B5^HrNwx(|AO+Fi0)}9b+C4R(vjpSu& zKA_*xTJWz02$URTqOaiO30s!BR!)zzqX*w}5J|D^jOXN^_y-7bxJkd zx}-SY-MLB<>tN6O!#yjAD{O6DexBDUPkysVigQYz;|Jp|r@?7N)&pb3xpcf>=wy$v~GLIM?cN=M(ZBI zj|b5ZTU|N7lC&uRY!=+mI$dmjWy*N}%&MjFWosH77gPa<@$Cvp2XsX{9DWaD(?x!` z_$n-2x;s=oQhtktIdZI>GV61S3inDZ4b#q~p~|y{IH{4d$N;haO2Shv~?+1snRnWA9mHi%xy^Wqa<( z@9iozCE-l!!VLo1Yli=OWXTF%2qrH(_#`!c_NwW6PKaw-kJ-HpajRb<+xki(P>el5 z|84DL(DOpGx&j5J4sVUwcMOiB<##z0NN6^I52P^}b+ywONzjlJhX===vG89cv@8)@ zZ#{tnL4+;KZDYu`?Y_9h0$Qfg+$k+9N_ECx~)aoPO7PctndFXbOk*iln4xjl8 z0k>Pq_0jQt#;*7`MRKh}aK5@s-7C_}(a&<74-=fi3dCe~$L@ZuzB#x=(pDVhg?4Wv zJUGxNU&$7kE^V&8;)Ff)1N8H8gVEHriW6}B6o>XhS+RaV>P5gBcxGmty4be>aRcM;jdb(GFP)&d>rQ~3t4m#n1JKI zBZUamOFz)BiQ2UBN3$I`HRMb_GXG+Y`dX%js1>9SH!t^%un-apXpR5s->~Sq$xc6>JT1&RmOzh`>9hEGTwPebS*wEulth=qD87}3IJg{> z{M)3=299nyNW31rp|op&kD!h?Qewp2VFQ?Us;Jc4WUsLR5OQ=0u+C>fRXOu;0|$n( zML-9d{aj9gI$@Cf`A82gJygKqoDd8)96YoFw@ckl0aahxy28`UEQy}uKuHf4nh{t5 zVNmx3&Q}P~l(ob6gSi7a_cwV9nx1WpxKFVIiY|%#4)4cH=R~jy@{*ZSnF7hj0oguX z?F@!u{-SQNw{=W`Yc*XJ^#LNiT&<2omdKnKT=f3^{1|W1i>*gQ@~M_m#&TO(VEk8C zQ`kUrY4hV|gO-kF@#gc<_U!ehKl7u8rFZ>Z-H61uc~)jMgl#p!O#bvy1^GK}6U2S` zZ=bQL$e+g=)M!$hrJ0$!*?LZ?iP-Ulew;dmEV;F@)KARKGdC+G1Q;!02`;M#gbE6f zmdDxvs(46P%#bcMOqi}yNcgzn(^Nf{5*c}UH@C0Ef;?NZCPK22QRLX+D?k?jeL_m> zBIHJ@aC5xs&8^awc!GsdS9*n-&3@<}jOD^Vg+UPfr4v)zV}z0L7B`oO!~)V5-kK?s zLiu){0f(YXE&KUT!y4VbIt)O3H-MUU#~h#`l;}ysC%&KZi2@GjGX>`LKXoNTUrb@A zBXRH4;LDqCeJF+VesQaLI2N@*yGwHgV&NR{o`_fqy55M5iCXAo@D$K8jQBtOJezp7 a#_XsCJKy~36s9S31fi#GtW~6m3jZHkXNC9x literal 0 HcmV?d00001 diff --git a/Files/Assets/Tiles/tile-60319.png b/Files/Assets/Tiles/tile-60319.png new file mode 100644 index 0000000000000000000000000000000000000000..03f1e811fab6bbac0bc97334b5ca6858a9cafc30 GIT binary patch literal 4430 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 IiO22#0eWL^9RL6T literal 0 HcmV?d00001 diff --git a/Files/Assets/Tiles/tile-60834.png b/Files/Assets/Tiles/tile-60834.png new file mode 100644 index 0000000000000000000000000000000000000000..5a8399cba5841aebd4e440685d9ea6313c80e4e3 GIT binary patch literal 3640 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 literal 0 HcmV?d00001 diff --git a/Files/Files.csproj b/Files/Files.csproj index b204d45684e7..beaf9cdccbf8 100644 --- a/Files/Files.csproj +++ b/Files/Files.csproj @@ -611,7 +611,46 @@ - + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + @@ -1024,9 +1063,6 @@ 2.0.4 - - 1.25.0 - diff --git a/Files/Helpers/SecondaryTileHelper.cs b/Files/Helpers/SecondaryTileHelper.cs index c6af96f2da7d..278485946fde 100644 --- a/Files/Helpers/SecondaryTileHelper.cs +++ b/Files/Helpers/SecondaryTileHelper.cs @@ -1,6 +1,4 @@ using Files.Filesystem; -using Microsoft.Graphics.Canvas; -using Microsoft.Graphics.Canvas.UI.Xaml; using Microsoft.Toolkit.Uwp.Notifications; using System; using System.Collections.Generic; @@ -35,64 +33,27 @@ private string GetTileID(string path) public async Task PinFolderAsync(string path, string name, string glyph) { - var file = await GenerateAssetAsync(glyph, GetTileID(name)); + var logoPath = new Uri($"ms-appx:///Assets/Tiles/tile-{(int)glyph[0]}.png"); + try + { + var logo = await StorageFile.GetFileFromApplicationUriAsync(logoPath); + } catch + { + // Specified icon file does not exist, use default + logoPath = new Uri($"ms-appx:///Assets/Tiles/tile-0.png"); + } SecondaryTile tile = new SecondaryTile( GetTileID(path), name, path, - new Uri("ms-appx:///Assets/Tiles/Files Icon.png"), - TileSize.Default); - - TileContent content = new TileContent() - { - Visual = new TileVisual() - { - TileMedium = new TileBinding() - { - Content = new TileBindingContentAdaptive() - { - Children = - { - new AdaptiveImage() - { - Source = $"{file.Path}", - } - } - } - } - } - }; - + logoPath, + TileSize.Square150x150); tile.VisualElements.ShowNameOnSquare150x150Logo = true; var result = await tile.RequestCreateAsync(); - // Generate the tile notification content and update the tile - TileUpdateManager.CreateTileUpdaterForSecondaryTile(tile.TileId).Update(new TileNotification(content.GetXml())); return result; } - - public async Task GenerateAssetAsync(string glyph, string id) - { - var image = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/Tiles/TileBaseLogo.png")); - - CanvasDevice device = CanvasDevice.GetSharedDevice(); - CanvasRenderTarget offscreen = new CanvasRenderTarget(device, 259, 229, 32); - using CanvasDrawingSession ds = offscreen.CreateDrawingSession(); - ds.Clear(Colors.Transparent); - var thing = await CanvasBitmap.LoadAsync(device, await image.OpenAsync(FileAccessMode.Read)); - ds.DrawImage(thing); - ds.DrawText(glyph, 60, 60, Colors.Black, new Microsoft.Graphics.Canvas.Text.CanvasTextFormat() - { - FontFamily = "Segoe Fluent Icons", - FontSize = 90 - }); - - ds.Flush(); - var saveFile = await Windows.Storage.ApplicationData.Current.LocalFolder.CreateFileAsync($"{id}.png", CreationCollisionOption.ReplaceExisting); - await offscreen.SaveAsync(await saveFile.OpenAsync(FileAccessMode.ReadWrite), CanvasBitmapFileFormat.Png); - return saveFile; - } } } From 1bcd5353efe959260ce99e1a251cfc4994c9643e Mon Sep 17 00:00:00 2001 From: Winston de Jong Date: Sun, 14 Mar 2021 03:19:19 -0700 Subject: [PATCH 03/16] Added Win2D tile asset generator --- Files/Assets/Tiles/tile-0.png | Bin 3085 -> 0 bytes Files/Assets/Tiles/tile-59155.png | Bin 5165 -> 0 bytes Files/Assets/Tiles/tile-59214.png | Bin 4286 -> 0 bytes Files/Assets/Tiles/tile-59219.png | Bin 4127 -> 0 bytes Files/Assets/Tiles/tile-59534.png | Bin 3924 -> 0 bytes Files/Assets/Tiles/tile-59542.png | Bin 3881 -> 0 bytes Files/Assets/Tiles/tile-59553.png | Bin 4259 -> 0 bytes Files/Assets/Tiles/tile-59557.png | Bin 4216 -> 0 bytes Files/Assets/Tiles/tile-59570.png | Bin 3933 -> 0 bytes Files/Assets/Tiles/tile-59598.png | Bin 4022 -> 0 bytes Files/Assets/Tiles/tile-59644.png | Bin 4195 -> 0 bytes Files/Assets/Tiles/tile-60319.png | Bin 4430 -> 0 bytes Files/Assets/Tiles/tile-60495.png | Bin 4201 -> 0 bytes Files/Assets/Tiles/tile-60834.png | Bin 3640 -> 0 bytes Files/Files.csproj | 43 ++----------------- Files/Helpers/SecondaryTileHelper.cs | 59 ++++++++++++++++++++++----- 16 files changed, 52 insertions(+), 50 deletions(-) delete mode 100644 Files/Assets/Tiles/tile-0.png delete mode 100644 Files/Assets/Tiles/tile-59155.png delete mode 100644 Files/Assets/Tiles/tile-59214.png delete mode 100644 Files/Assets/Tiles/tile-59219.png delete mode 100644 Files/Assets/Tiles/tile-59534.png delete mode 100644 Files/Assets/Tiles/tile-59542.png delete mode 100644 Files/Assets/Tiles/tile-59553.png delete mode 100644 Files/Assets/Tiles/tile-59557.png delete mode 100644 Files/Assets/Tiles/tile-59570.png delete mode 100644 Files/Assets/Tiles/tile-59598.png delete mode 100644 Files/Assets/Tiles/tile-59644.png delete mode 100644 Files/Assets/Tiles/tile-60319.png delete mode 100644 Files/Assets/Tiles/tile-60495.png delete mode 100644 Files/Assets/Tiles/tile-60834.png diff --git a/Files/Assets/Tiles/tile-0.png b/Files/Assets/Tiles/tile-0.png deleted file mode 100644 index 51596892a7d5b51e88e4846afbd865cccb5bd4f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3085 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 diff --git a/Files/Assets/Tiles/tile-59214.png b/Files/Assets/Tiles/tile-59214.png deleted file mode 100644 index ee326e7f6c012360fd6847fea7f34475f856cd6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 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 diff --git a/Files/Assets/Tiles/tile-59542.png b/Files/Assets/Tiles/tile-59542.png deleted file mode 100644 index 6edb397ff9006c208af2019467151390c671c979..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3881 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 Xt<(Xtr+~wM-h!iM)}|%K)Y$(3pd7yD diff --git a/Files/Assets/Tiles/tile-59553.png b/Files/Assets/Tiles/tile-59553.png deleted file mode 100644 index 63a033d0c5f5d104168cf5e1eca5cc025c1dc756..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4259 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 diff --git a/Files/Assets/Tiles/tile-59557.png b/Files/Assets/Tiles/tile-59557.png deleted file mode 100644 index d1d02e88f5d394ee95dd6f57f81c05657f5a92c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4216 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 CE|K8? diff --git a/Files/Assets/Tiles/tile-59570.png b/Files/Assets/Tiles/tile-59570.png deleted file mode 100644 index dd33c102b26becfcece52757a2d884269c03b754..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3933 zcmcInc{r4P_y5ikV;}Uiq3r6hN3xV%cr8g8B+V#7h!$h#Mh~NGrIdY&#H%dBQ1&NE zB} zY7YPc77+l$1%J+6E4sv4UAH$k2Bn?if58j1r;&{j02L{G8*V$`HBW$r^K}3OTR1PG z&A-SU78Wc`jm`w0XXN-LN;vFo+db7#zthwdWf9C&-Xo&?NcD_}fEJ?h;hrR6{cdCO zViM(#^_Y4dKOS@wDNgev=8wA%$z<|DXD`00)GF^Uqjhx3h@a1+K6~1%%F73{#PHk( zjrM@B+0G9cdO_cYSu8n&Mz!nKxjJ3!Y>gnCF6`F-;vr8S{9p|YyJZ#)iX-F`Y427u z_8Ht3sI0E0QXLVQ#*9`z`6sr0`L8dkX;2%fkL*~-z+stVA73Svr7;K1ci{s%>r|~@ zUiBKOGPsA&+q$r}AvoPZv!p@@kXmdKr{O% znr|Q8v0$<^lh~6H#*SE9xO3E#Kh(eDr<#V4W%-s5i}}DcYWAhXQ*Xwmr=7n!=vGVY zX!4yM+Wr3br9wB#g}BK2$WZ?|eB+X62v^(fw)L*q5#SzEyq3~*?R`OI+$Y%+&7<^|>I3$b55B%(lZkzeHTC|lZm&7qV`c{#0tl(C16n=j*=)Xj1e;tU&t zPymM(J%|B0gf`Wjh~+ zIEkluXOgt9Ci_0Di0XLnAL*Fe#Um{R1f;})Zt-FV^Ih2a+L^t*vaJaYL?mk?2XM|X z5MgOR`RgH8U18&eOh|iP1letIgL1Qmty^p>aZV#J)_cKC|BE(AdQ4N#6Y`F znUH_XTQw?lolLnpfyHnmqPz9qNMoRJ1w&-Bn}8HnoadDr^xWgjixfUY_k}p)aanf8 z_jXr@ysKm`RCW5PHhmeiA)jvj#H|SKTS3Q<+tvE_6IM1)?jJtJo=1s!8fcY!FZ)+e zkG=5jG?^oA-sq${o)3>3Yum@Q6f=&&KQxAo5{*Nn0bNvcs4e#d|Kg&=T>p&eCT#blY{k`#c+0z>sgg`?jirCWpj zqi6NnsN>iJjV9kEtPSoKUybF-yw58^<$RJL+stt*g7Up2%zbK1$}+{N?V9(gyv4=h z3k>`%5ztu?b(|h)?f$Zyj1LW^6h%qm!uTb@aC6ke(N7yCi9%u(I0LZQbi@*9zngID zVg0kvavG$fW7JUUL#t(nWq z(`1K5Y3dVN=ND4|8WK&scig{7Hi_M%kkqsi(nVi-I6onM!W#n^fk?vVI}VY-&CK8H zj`lphHxZ*Y>nrD1H9BzD0!M);Zi zWSxHD$+Idd|JV=W$2LU~-I^Xx*khIbg=0&4Azq5f!6Z_3y45a(T2I&tRKq+<;dLXv z=WUvFn=~=;y+=fpFLlNiHmRO4t*Hv*{@K|RTc~LS%c0zA6bEGU&zjey>GWj;!9vvZ zhE+)rXgO}hZQXQ8`mxJd28gS%0DHEo_Xv;lsDRMfdlC>oM6z{Jabf^j!0#PHy5b#z z?v{YotfNV@UTneU@*G1LoAnz641IZ&qqy$LKogb5Fft3MWh-DmDxaPK`%}?IrVpME zHlZ~Yc%^GEKDm+Q0rqr?!hTG>dc~miM*6q$L(gXb*2Sm}bPGlEf8&7>+QB#m8srrL zBtIoYs)A$JVnO3H{Uyy##WX^^Shk!NpAb}PgHW;#;Foj!)u z5!8IM(;P4%?cD42wk_@_#5{vt-|V|6!az0ubP!JVXWzQbFS=%-=a@C;FXq@rm+LrN z(Hd^>=93Cobpd>n&$cu?95hDg$@XQJoKz}MUdd&f%~>AVt zD-%Q4+S*i391c_pG*lF z8th2dK)=xnm2P*|+VqH9Rm2b2KGKNOS-9RXu3`2x3@)C+2EW z&E1SSKTjAfosa291nUxz&Z%xC#f+RjWf!;*VH9OgXO6YPRY5~Iddl4)%Mr>EGw^mV z@}ii(bk?>uZYFAnnh@zy##a4C|hya#JWYK*?z(0toBLaakq9gA+g|{$7jbU zFqv?#V4#BSu$}*^=7Fy8fEM!|PGbcJs;a(otHBx+l-J#7;SO--s)V4%FgYW&(#>{N zHQVuK=XQUqz+Y7UU&hF3z~Z22)9-+<)1*EAzKR*;wAlu{TFb`edyB!sG`! zNZ;*Jkd|LK{NGYQHK)ou;c<=sgndZo`-BKc;fJm!<-Wb0xI(RiX@Se*HrlWWt}O;$ zSpAOU+rKGRelUp8G}}(jHMG}VYj+NDBEaTug0Dhg`=@Je2t+skzbWE}=seKP!*>`3 zSBB13=)u%jdPvi^xgAzU5zgf+EErElFjNBDahwAAb@B3UFd_ozkyCEr`Ayz--&cw{O5=YN_!T~dCKiZX~q78K!DWCy18q|Mg621TW*CXef{%Wiy zHr8A#e1wzIbIh1+d4c1tfvYHaAS5S_N4%POs5ioI=CtsmA@%+rhezTop6~SIBwM@j z6n!W;nXmr7&xe)j9G}wpOM88G+NanQhN)N2fK2Z%w{X;vF6u`k=lc?;Lm5aiOKS+R zVJw19(@|ZpzO9}ULLKmbrY?U6cvbt9CXdoC-2B#l>Ybg7^|L8XTYB`VBDG6%O8AeM zDJt$LnFAQ8PXvkU*+}Zw2i2RyE%!>Nw6XZ1<+3Av*wfAxERj^;Rj}FKdDJ?XKbty( zyEvlOKtyymSR{kPKnr&s8`rlxB5t3X33V6&kDneiJbiu#aaMfs^`m)~F_Mql;mDo1 znzi-<;hbvwDqhHpf=X3JOY1)06dsqb#G2kX3%e0l7s3tC3l80agko8Ybgl2L?fI4U zdHdTg3@VbS2FUvBPvNnq;&N!1ViiW4^FxA)oGL!32MG&1WC51$R0j@T2E$S)j_uLv z5yawqK$@ZX->8P0Jg0rXQZt@@XZsN?IMQh1O2%rPA3l zNXdFWOgyxo=SKNEsii0&%yfHkl!F*Z$J00dTxOp}5O|{r3S<{<2~+OVN3dA+Jg$g; z9vAavQ6IE;vdL>H7$^Yabrx-eox#Ky8n%Y-Tl9W0Z==X|0tc6jCB@Ovx(B7d_6C%3 zB^g{{a^GZ|VUf{)N|L6Njo4g#VK3T}ZmQbFilJH_L8P^+YJVSA=()?PCt5#s^Y$8& jrsMu!e~qa}BqZ3}zVcq8DfV-}aUd+sY)wmz2{Hcys1yh^ diff --git a/Files/Assets/Tiles/tile-59598.png b/Files/Assets/Tiles/tile-59598.png deleted file mode 100644 index 23c25b5d7fc8c0b21e8a8d89bba44ff1dc99b019..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4022 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 diff --git a/Files/Assets/Tiles/tile-59644.png b/Files/Assets/Tiles/tile-59644.png deleted file mode 100644 index 17ac29b6f77b4fffc85a0862aace3b56a3b056ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4195 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 a#_XsCJKy~36s9S31fi#GtW~6m3jZHkXNC9x diff --git a/Files/Assets/Tiles/tile-60319.png b/Files/Assets/Tiles/tile-60319.png deleted file mode 100644 index 03f1e811fab6bbac0bc97334b5ca6858a9cafc30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4430 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 IiO22#0eWL^9RL6T diff --git a/Files/Assets/Tiles/tile-60834.png b/Files/Assets/Tiles/tile-60834.png deleted file mode 100644 index 5a8399cba5841aebd4e440685d9ea6313c80e4e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3640 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 diff --git a/Files/Files.csproj b/Files/Files.csproj index f84d77f5ac58..6b525b092dce 100644 --- a/Files/Files.csproj +++ b/Files/Files.csproj @@ -614,46 +614,6 @@ - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - @@ -1067,6 +1027,9 @@ 2.0.4 + + 1.25.0 + diff --git a/Files/Helpers/SecondaryTileHelper.cs b/Files/Helpers/SecondaryTileHelper.cs index 278485946fde..882bf3bcbf4c 100644 --- a/Files/Helpers/SecondaryTileHelper.cs +++ b/Files/Helpers/SecondaryTileHelper.cs @@ -1,11 +1,15 @@ using Files.Filesystem; +using Microsoft.Graphics.Canvas; +using Microsoft.Graphics.Canvas.Svg; using Microsoft.Toolkit.Uwp.Notifications; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; +using System.Numerics; using System.Text; using System.Threading.Tasks; +using Windows.Foundation; using Windows.Storage; using Windows.UI; using Windows.UI.Notifications; @@ -33,27 +37,62 @@ private string GetTileID(string path) public async Task PinFolderAsync(string path, string name, string glyph) { - var logoPath = new Uri($"ms-appx:///Assets/Tiles/tile-{(int)glyph[0]}.png"); - try - { - var logo = await StorageFile.GetFileFromApplicationUriAsync(logoPath); - } catch - { - // Specified icon file does not exist, use default - logoPath = new Uri($"ms-appx:///Assets/Tiles/tile-0.png"); - } + + (Uri Path150x150, Uri Path71x71) logos = await GenerateAssetsAsync(glyph); SecondaryTile tile = new SecondaryTile( GetTileID(path), name, path, - logoPath, + logos.Path150x150, TileSize.Square150x150); + tile.VisualElements.Square71x71Logo = logos.Path71x71; tile.VisualElements.ShowNameOnSquare150x150Logo = true; var result = await tile.RequestCreateAsync(); return result; } + + public async Task<(Uri Path150x150, Uri Path71x71)> GenerateAssetsAsync(string glyph) + { + var small = await GenerateAssetAsync(glyph, 250, 250, 56, 0.5f); + var medium = await GenerateAssetAsync(glyph, 300, 300, 42, 0.4f); + return (medium, small); + } + + public async Task GenerateAssetAsync(string glyph, float widthDpi, float heightDpi, float fontSize, float scale) + { + var image = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/FolderIcon2Large.svg")); + CanvasDevice device = CanvasDevice.GetSharedDevice(); + CanvasRenderTarget offscreen = new CanvasRenderTarget(device, widthDpi, heightDpi, 64); + var width = offscreen.SizeInPixels.Width; + var height = offscreen.SizeInPixels.Height; + using CanvasDrawingSession ds = offscreen.CreateDrawingSession(); + ds.Clear(Colors.Transparent); + ds.Units = CanvasUnits.Pixels; + ds.Antialiasing = CanvasAntialiasing.Antialiased; + ds.TextAntialiasing = Microsoft.Graphics.Canvas.Text.CanvasTextAntialiasing.ClearType; + var canvasSvgDocument = await CanvasSvgDocument.LoadAsync(device, await image.OpenReadAsync()); + ds.Transform *= Matrix3x2.CreateScale(scale, scale); + ds.DrawSvg(canvasSvgDocument, new Size(width, height), (width-256*scale)/scale/2, (height-256*scale)/scale/2); + ds.Transform = Matrix3x2.CreateTranslation(0, 0); + ds.DrawText(glyph, width/2, height*0.53f, Colors.Black, new Microsoft.Graphics.Canvas.Text.CanvasTextFormat() + { + FontFamily = "Segoe Fluent Icons", + FontSize = fontSize, + HorizontalAlignment = Microsoft.Graphics.Canvas.Text.CanvasHorizontalAlignment.Center, + VerticalAlignment = Microsoft.Graphics.Canvas.Text.CanvasVerticalAlignment.Center, + FontWeight = Windows.UI.Text.FontWeights.Medium, + }); + ds.Flush(); + + var name = $"tile-{(int)glyph[0]}-{widthDpi}x{heightDpi}.png"; + + var saveFolder = await ApplicationData.Current.LocalFolder.CreateFolderAsync("Tiles", CreationCollisionOption.OpenIfExists); + var saveFile = await saveFolder.CreateFileAsync(name, CreationCollisionOption.ReplaceExisting); + await offscreen.SaveAsync(await saveFile.OpenAsync(FileAccessMode.ReadWrite), CanvasBitmapFileFormat.Png); + return new Uri($"ms-appdata:///local/Tiles/{name}"); + } } } From 18c2ce3180c1c56057142f36cc731d0fff5b409e Mon Sep 17 00:00:00 2001 From: Winston de Jong Date: Sun, 14 Mar 2021 14:12:23 -0700 Subject: [PATCH 04/16] - Added context menu item for pinning and unpinning - Improved exception handling - Added check for fluent icons installed, and backup for Segoe MDL2 if they are not - Remove all symbols and spaces from ID - Use glyph helper and make glyph param optional - Moved asset generation to helper class --- Files/BaseLayout.cs | 14 ++++ Files/Files.csproj | 1 + Files/Helpers/FolderGlyphAssetHelper.cs | 68 ++++++++++++++++ Files/Helpers/SecondaryTileHelper.cs | 81 +++++++------------ Files/Interacts/Interaction.cs | 15 ++++ Files/Strings/en-US/Resources.resw | 7 ++ Files/UserControls/SidebarControl.xaml | 9 --- Files/UserControls/SidebarControl.xaml.cs | 13 --- .../Views/LayoutModes/GenericFileBrowser.xaml | 20 +++++ Files/Views/LayoutModes/GridViewBrowser.xaml | 20 +++++ 10 files changed, 176 insertions(+), 72 deletions(-) create mode 100644 Files/Helpers/FolderGlyphAssetHelper.cs diff --git a/Files/BaseLayout.cs b/Files/BaseLayout.cs index f470b4dbc8c7..b7e5e6cdd0ed 100644 --- a/Files/BaseLayout.cs +++ b/Files/BaseLayout.cs @@ -650,6 +650,8 @@ public void RightClickItemContextMenu_Opening(object sender, object e) { UnloadMenuFlyoutItemByName("SidebarPinItem"); UnloadMenuFlyoutItemByName("SidebarUnpinItem"); + UnloadMenuFlyoutItemByName("PinItemToStart"); + UnloadMenuFlyoutItemByName("UnpinItemFromStart"); UnloadMenuFlyoutItemByName("OpenInNewTab"); UnloadMenuFlyoutItemByName("OpenInNewWindowItem"); UnloadMenuFlyoutItemByName("OpenInNewPane"); @@ -726,6 +728,7 @@ public void RightClickItemContextMenu_Opening(object sender, object e) if (SelectedItems.Any(x => x.IsShortcutItem)) { UnloadMenuFlyoutItemByName("SidebarPinItem"); + UnloadMenuFlyoutItemByName("PinItemToStart"); UnloadMenuFlyoutItemByName("CreateShortcut"); } else if (SelectedItems.Count == 1) @@ -756,6 +759,17 @@ public void RightClickItemContextMenu_Opening(object sender, object e) LoadMenuFlyoutItemByName("SidebarPinItem"); UnloadMenuFlyoutItemByName("SidebarUnpinItem"); } + + if (selectedItems.All(x => x.IsItemPinnedToStart)) + { + UnloadMenuFlyoutItemByName("PinItemToStart"); + LoadMenuFlyoutItemByName("UnpinItemFromStart"); + } + else + { + LoadMenuFlyoutItemByName("PinItemToStart"); + UnloadMenuFlyoutItemByName("UnpinItemFromStart"); + } } if (SelectedItems.Count <= 5 && SelectedItems.Count > 0) diff --git a/Files/Files.csproj b/Files/Files.csproj index 6b525b092dce..39e3758d2d58 100644 --- a/Files/Files.csproj +++ b/Files/Files.csproj @@ -211,6 +211,7 @@ + diff --git a/Files/Helpers/FolderGlyphAssetHelper.cs b/Files/Helpers/FolderGlyphAssetHelper.cs new file mode 100644 index 000000000000..6fc89346cf43 --- /dev/null +++ b/Files/Helpers/FolderGlyphAssetHelper.cs @@ -0,0 +1,68 @@ +using Microsoft.Graphics.Canvas; +using Microsoft.Graphics.Canvas.Svg; +using Microsoft.Graphics.Canvas.Text; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Numerics; +using System.Text; +using System.Threading.Tasks; +using Windows.Foundation; +using Windows.Storage; +using Windows.UI; + +namespace Files.Helpers +{ + public static class FolderGlyphAssetHelper + { + public static async Task<(Uri Path150x150, Uri Path71x71)> GenerateAssetsAsync(string glyph = "") + { + var small = await GenerateAssetAsync(250, 250, 56, 0.5f, glyph); + var medium = await GenerateAssetAsync(300, 300, 42, 0.4f, glyph); + return (medium, small); + } + + public static async Task GenerateAssetAsync(float widthDpi, float heightDpi, float fontSize, float scale, string glyph = "") + { + var image = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/FolderIcon2Large.svg")); + CanvasDevice device = CanvasDevice.GetSharedDevice(); + CanvasRenderTarget offscreen = new CanvasRenderTarget(device, widthDpi, heightDpi, 64); + var width = offscreen.SizeInPixels.Width; + var height = offscreen.SizeInPixels.Height; + using CanvasDrawingSession ds = offscreen.CreateDrawingSession(); + ds.Clear(Colors.Transparent); + ds.Units = CanvasUnits.Pixels; + ds.Antialiasing = CanvasAntialiasing.Antialiased; + ds.TextAntialiasing = Microsoft.Graphics.Canvas.Text.CanvasTextAntialiasing.ClearType; + var canvasSvgDocument = await CanvasSvgDocument.LoadAsync(device, await image.OpenReadAsync()); + ds.Transform *= Matrix3x2.CreateScale(scale, scale); + ds.DrawSvg(canvasSvgDocument, new Size(width, height), (width - 256 * scale) / scale / 2, (height - 256 * scale) / scale / 2); + ds.Transform = Matrix3x2.CreateTranslation(0, 0); + + // skip this step if the glyph is empty + if(!string.IsNullOrEmpty(glyph)) + { + // Only use segoe fluent icons if the machine has them installed + var font = CanvasFontSet.GetSystemFontSet().Fonts.Any(f => f.FamilyNames.Values.Contains("Segoe Fluent Icons")) ? "Segoe Fluent Icons" : "Segoe MDL2 Assets"; + ds.DrawText(glyph, width / 2, height * 0.53f, Colors.Black, new Microsoft.Graphics.Canvas.Text.CanvasTextFormat() + { + FontFamily = font, + FontSize = fontSize, + HorizontalAlignment = Microsoft.Graphics.Canvas.Text.CanvasHorizontalAlignment.Center, + VerticalAlignment = Microsoft.Graphics.Canvas.Text.CanvasVerticalAlignment.Center, + FontWeight = Windows.UI.Text.FontWeights.Medium, + }); + } + + ds.Flush(); + + var name = $"tile-{(!string.IsNullOrEmpty(glyph) ? (int)glyph[0] : 0)}-{widthDpi}x{heightDpi}.png"; + var saveFolder = await ApplicationData.Current.LocalFolder.CreateFolderAsync("Tiles", CreationCollisionOption.OpenIfExists); + var saveFile = await saveFolder.CreateFileAsync(name, CreationCollisionOption.OpenIfExists); + using var fileStream = await saveFile.OpenAsync(FileAccessMode.ReadWrite); + await offscreen.SaveAsync(fileStream, CanvasBitmapFileFormat.Png); + await fileStream.FlushAsync(); + return new Uri($"ms-appdata:///local/Tiles/{name}"); + } + } +} diff --git a/Files/Helpers/SecondaryTileHelper.cs b/Files/Helpers/SecondaryTileHelper.cs index 882bf3bcbf4c..d5829e0533a8 100644 --- a/Files/Helpers/SecondaryTileHelper.cs +++ b/Files/Helpers/SecondaryTileHelper.cs @@ -1,6 +1,7 @@ using Files.Filesystem; using Microsoft.Graphics.Canvas; using Microsoft.Graphics.Canvas.Svg; +using Microsoft.Graphics.Canvas.Text; using Microsoft.Toolkit.Uwp.Notifications; using System; using System.Collections.Generic; @@ -32,67 +33,47 @@ public bool CheckFolderPinned(string path) /// private string GetTileID(string path) { - return $"folder-{path.Replace("\\", "").Replace(":", "")}"; + // Remove symbols because windows doesn't like them in the ID, and will blow up + return $"folder-{new string(path.Where(c => char.IsLetterOrDigit(c)).ToArray())}"; } - public async Task PinFolderAsync(string path, string name, string glyph) + public async Task TryPinFolderAsync(string path, string name) { + var result = false; + try + { + var glyph = GlyphHelper.GetItemIcon(path); + // ignore the default + if (glyph == "\uE8B7") + { + glyph = ""; + } - (Uri Path150x150, Uri Path71x71) logos = await GenerateAssetsAsync(glyph); + (Uri Path150x150, Uri Path71x71) logos = await FolderGlyphAssetHelper.GenerateAssetsAsync(glyph); - SecondaryTile tile = new SecondaryTile( - GetTileID(path), - name, - path, - logos.Path150x150, - TileSize.Square150x150); + SecondaryTile tile = new SecondaryTile( + GetTileID(path), + name, + path, + logos.Path150x150, + TileSize.Square150x150); - tile.VisualElements.Square71x71Logo = logos.Path71x71; - tile.VisualElements.ShowNameOnSquare150x150Logo = true; - var result = await tile.RequestCreateAsync(); + tile.VisualElements.Square71x71Logo = logos.Path71x71; + tile.VisualElements.ShowNameOnSquare150x150Logo = true; + result = await tile.RequestCreateAsync(); + } + catch (Exception e) + { + Debug.WriteLine(GetTileID(path)); + Debug.WriteLine(e.ToString()); + } return result; } - public async Task<(Uri Path150x150, Uri Path71x71)> GenerateAssetsAsync(string glyph) - { - var small = await GenerateAssetAsync(glyph, 250, 250, 56, 0.5f); - var medium = await GenerateAssetAsync(glyph, 300, 300, 42, 0.4f); - return (medium, small); - } - - public async Task GenerateAssetAsync(string glyph, float widthDpi, float heightDpi, float fontSize, float scale) + public async Task UnpinFromStartAsync(string path) { - var image = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/FolderIcon2Large.svg")); - CanvasDevice device = CanvasDevice.GetSharedDevice(); - CanvasRenderTarget offscreen = new CanvasRenderTarget(device, widthDpi, heightDpi, 64); - var width = offscreen.SizeInPixels.Width; - var height = offscreen.SizeInPixels.Height; - using CanvasDrawingSession ds = offscreen.CreateDrawingSession(); - ds.Clear(Colors.Transparent); - ds.Units = CanvasUnits.Pixels; - ds.Antialiasing = CanvasAntialiasing.Antialiased; - ds.TextAntialiasing = Microsoft.Graphics.Canvas.Text.CanvasTextAntialiasing.ClearType; - var canvasSvgDocument = await CanvasSvgDocument.LoadAsync(device, await image.OpenReadAsync()); - ds.Transform *= Matrix3x2.CreateScale(scale, scale); - ds.DrawSvg(canvasSvgDocument, new Size(width, height), (width-256*scale)/scale/2, (height-256*scale)/scale/2); - ds.Transform = Matrix3x2.CreateTranslation(0, 0); - ds.DrawText(glyph, width/2, height*0.53f, Colors.Black, new Microsoft.Graphics.Canvas.Text.CanvasTextFormat() - { - FontFamily = "Segoe Fluent Icons", - FontSize = fontSize, - HorizontalAlignment = Microsoft.Graphics.Canvas.Text.CanvasHorizontalAlignment.Center, - VerticalAlignment = Microsoft.Graphics.Canvas.Text.CanvasVerticalAlignment.Center, - FontWeight = Windows.UI.Text.FontWeights.Medium, - }); - ds.Flush(); - - var name = $"tile-{(int)glyph[0]}-{widthDpi}x{heightDpi}.png"; - - var saveFolder = await ApplicationData.Current.LocalFolder.CreateFolderAsync("Tiles", CreationCollisionOption.OpenIfExists); - var saveFile = await saveFolder.CreateFileAsync(name, CreationCollisionOption.ReplaceExisting); - await offscreen.SaveAsync(await saveFile.OpenAsync(FileAccessMode.ReadWrite), CanvasBitmapFileFormat.Png); - return new Uri($"ms-appdata:///local/Tiles/{name}"); + return await StartScreenManager.GetDefault().TryRemoveSecondaryTileAsync(GetTileID(path)); } } } diff --git a/Files/Interacts/Interaction.cs b/Files/Interacts/Interaction.cs index cc870bac95fb..57d3198b5069 100644 --- a/Files/Interacts/Interaction.cs +++ b/Files/Interacts/Interaction.cs @@ -1278,6 +1278,21 @@ private void NewFile(ShellNewEntry itemType) public void ClearAllItems(BaseLayout contentPage) => contentPage.ClearSelection(); + public async void PinItemToStart_Click(object sender, RoutedEventArgs e) + { + foreach (ListedItem listedItem in AssociatedInstance.ContentPage.SelectedItems) + { + listedItem.IsItemPinnedToStart = await App.SecondaryTileHelper.TryPinFolderAsync(listedItem.ItemPath, listedItem.ItemName); + } + } + public async void UnpinItemFromStart_Click(object sender, RoutedEventArgs e) + { + foreach (ListedItem listedItem in AssociatedInstance.ContentPage.SelectedItems) + { + listedItem.IsItemPinnedToStart = !(await App.SecondaryTileHelper.UnpinFromStartAsync(listedItem.ItemPath)); + } + } + public async void ToggleQuickLook() { try diff --git a/Files/Strings/en-US/Resources.resw b/Files/Strings/en-US/Resources.resw index a7c4c16b03ad..0dd060d7ba63 100644 --- a/Files/Strings/en-US/Resources.resw +++ b/Files/Strings/en-US/Resources.resw @@ -1905,4 +1905,11 @@ Close tabs to the right + + Pin to the Start Menu + + + Unpin from the Start Menu + + diff --git a/Files/UserControls/SidebarControl.xaml b/Files/UserControls/SidebarControl.xaml index a13662544ec4..4131e3405a92 100644 --- a/Files/UserControls/SidebarControl.xaml +++ b/Files/UserControls/SidebarControl.xaml @@ -187,15 +187,6 @@ - - - - - + + + + + + + + + + + + + + + + + + + + Date: Sun, 14 Mar 2021 14:33:41 -0700 Subject: [PATCH 05/16] Code factor --- Files/Helpers/FolderGlyphAssetHelper.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Files/Helpers/FolderGlyphAssetHelper.cs b/Files/Helpers/FolderGlyphAssetHelper.cs index 6fc89346cf43..a183302dbcd4 100644 --- a/Files/Helpers/FolderGlyphAssetHelper.cs +++ b/Files/Helpers/FolderGlyphAssetHelper.cs @@ -36,7 +36,7 @@ public static async Task GenerateAssetAsync(float widthDpi, float heightDpi ds.TextAntialiasing = Microsoft.Graphics.Canvas.Text.CanvasTextAntialiasing.ClearType; var canvasSvgDocument = await CanvasSvgDocument.LoadAsync(device, await image.OpenReadAsync()); ds.Transform *= Matrix3x2.CreateScale(scale, scale); - ds.DrawSvg(canvasSvgDocument, new Size(width, height), (width - 256 * scale) / scale / 2, (height - 256 * scale) / scale / 2); + ds.DrawSvg(canvasSvgDocument, new Size(width, height), (width - (256 * scale)) / scale / 2, (height - (256 * scale)) / scale / 2); ds.Transform = Matrix3x2.CreateTranslation(0, 0); // skip this step if the glyph is empty From db60a386074f1881ff49e2af7c34a55fcb3fdc0d Mon Sep 17 00:00:00 2001 From: Winston de Jong Date: Sun, 14 Mar 2021 15:00:21 -0700 Subject: [PATCH 06/16] Removed glyphs --- Files/Helpers/SecondaryTileHelper.cs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Files/Helpers/SecondaryTileHelper.cs b/Files/Helpers/SecondaryTileHelper.cs index d5829e0533a8..ade786cac4a2 100644 --- a/Files/Helpers/SecondaryTileHelper.cs +++ b/Files/Helpers/SecondaryTileHelper.cs @@ -42,12 +42,13 @@ public async Task TryPinFolderAsync(string path, string name) var result = false; try { - var glyph = GlyphHelper.GetItemIcon(path); + var glyph = ""; + //var glyph = GlyphHelper.GetItemIcon(path); // ignore the default - if (glyph == "\uE8B7") - { - glyph = ""; - } + //if (glyph == "\uE8B7") + //{ + // glyph = ""; + //} (Uri Path150x150, Uri Path71x71) logos = await FolderGlyphAssetHelper.GenerateAssetsAsync(glyph); From 7615af300a38fa0db3caaaa9133d90af3ff09589 Mon Sep 17 00:00:00 2001 From: Winston de Jong Date: Sun, 14 Mar 2021 15:03:28 -0700 Subject: [PATCH 07/16] Remove if shift key not held --- Files/BaseLayout.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Files/BaseLayout.cs b/Files/BaseLayout.cs index dcd759cf9b07..468dd7937c95 100644 --- a/Files/BaseLayout.cs +++ b/Files/BaseLayout.cs @@ -794,6 +794,13 @@ public void RightClickItemContextMenu_Opening(object sender, object e) { UnloadMenuFlyoutItemByName("OpenInNewPane"); } + + //Shift key is not held, remove extras here + if(Window.Current.CoreWindow.GetKeyState(VirtualKey.Shift) != CoreVirtualKeyStates.Down) + { + UnloadMenuFlyoutItemByName("PinItemToStart"); + UnloadMenuFlyoutItemByName("UnpinItemFromStart"); + } } //check the file extension of the selected item From bf48049e5dba88587f87b820451adeaa6100e585 Mon Sep 17 00:00:00 2001 From: Winston de Jong Date: Sun, 14 Mar 2021 15:36:04 -0700 Subject: [PATCH 08/16] Move events from Interaction.cs --- Files/Interacts/Interaction.cs | 16 ---------------- Files/Views/LayoutModes/GenericFileBrowser.xaml | 4 ++-- .../Views/LayoutModes/GenericFileBrowser.xaml.cs | 16 ++++++++++++++++ Files/Views/LayoutModes/GridViewBrowser.xaml | 4 ++-- Files/Views/LayoutModes/GridViewBrowser.xaml.cs | 15 +++++++++++++++ 5 files changed, 35 insertions(+), 20 deletions(-) diff --git a/Files/Interacts/Interaction.cs b/Files/Interacts/Interaction.cs index 0f1eb7f126ed..44a4c73aee15 100644 --- a/Files/Interacts/Interaction.cs +++ b/Files/Interacts/Interaction.cs @@ -1277,22 +1277,6 @@ private void NewFile(ShellNewEntry itemType) public RelayCommand ClearContentPageSelection => new RelayCommand(() => ClearAllItems(AssociatedInstance.ContentPage)); public void ClearAllItems(BaseLayout contentPage) => contentPage.ClearSelection(); - - public async void PinItemToStart_Click(object sender, RoutedEventArgs e) - { - foreach (ListedItem listedItem in AssociatedInstance.ContentPage.SelectedItems) - { - listedItem.IsItemPinnedToStart = await App.SecondaryTileHelper.TryPinFolderAsync(listedItem.ItemPath, listedItem.ItemName); - } - } - public async void UnpinItemFromStart_Click(object sender, RoutedEventArgs e) - { - foreach (ListedItem listedItem in AssociatedInstance.ContentPage.SelectedItems) - { - listedItem.IsItemPinnedToStart = !(await App.SecondaryTileHelper.UnpinFromStartAsync(listedItem.ItemPath)); - } - } - public async void ToggleQuickLook() { try diff --git a/Files/Views/LayoutModes/GenericFileBrowser.xaml b/Files/Views/LayoutModes/GenericFileBrowser.xaml index 370f0511207e..78c72e35b7d2 100644 --- a/Files/Views/LayoutModes/GenericFileBrowser.xaml +++ b/Files/Views/LayoutModes/GenericFileBrowser.xaml @@ -575,7 +575,7 @@ x:Name="PinItemToStart" x:Uid="PinItemToStart" x:Load="False" - Click="{x:Bind ParentShellPageInstance.InteractionOperations.PinItemToStart_Click}" + Click="PinItemToStart_Click" Text="Pin to the Start Menu"> @@ -585,7 +585,7 @@ x:Name="UnpinItemFromStart" x:Uid="UnpinItemFromStart" x:Load="False" - Click="{x:Bind ParentShellPageInstance.InteractionOperations.UnpinItemFromStart_Click}" + Click="UnpinItemFromStart_Click" Text="Unpin from the Start Menu"> diff --git a/Files/Views/LayoutModes/GenericFileBrowser.xaml.cs b/Files/Views/LayoutModes/GenericFileBrowser.xaml.cs index 5c6290ad6d16..7f4b9bf9989f 100644 --- a/Files/Views/LayoutModes/GenericFileBrowser.xaml.cs +++ b/Files/Views/LayoutModes/GenericFileBrowser.xaml.cs @@ -631,5 +631,21 @@ private void AllView_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e) tapDebounceTimer.Stop(); ParentShellPageInstance.InteractionOperations.OpenItem_Click(null, null); } + + public async void PinItemToStart_Click(object sender, RoutedEventArgs e) + { + foreach (ListedItem listedItem in SelectedItems) + { + listedItem.IsItemPinnedToStart = await App.SecondaryTileHelper.TryPinFolderAsync(listedItem.ItemPath, listedItem.ItemName); + } + } + public async void UnpinItemFromStart_Click(object sender, RoutedEventArgs e) + { + foreach (ListedItem listedItem in SelectedItems) + { + listedItem.IsItemPinnedToStart = !(await App.SecondaryTileHelper.UnpinFromStartAsync(listedItem.ItemPath)); + } + } + } } diff --git a/Files/Views/LayoutModes/GridViewBrowser.xaml b/Files/Views/LayoutModes/GridViewBrowser.xaml index 348cb9f07d17..ce598805429a 100644 --- a/Files/Views/LayoutModes/GridViewBrowser.xaml +++ b/Files/Views/LayoutModes/GridViewBrowser.xaml @@ -538,7 +538,7 @@ x:Name="PinItemToStart" x:Uid="PinItemToStart" x:Load="False" - Click="{x:Bind ParentShellPageInstance.InteractionOperations.PinItemToStart_Click}" + Click="PinItemToStart_Click" Text="Pin to the Start Menu"> @@ -548,7 +548,7 @@ x:Name="UnpinItemFromStart" x:Uid="UnpinItemFromStart" x:Load="False" - Click="{x:Bind ParentShellPageInstance.InteractionOperations.UnpinItemFromStart_Click}" + Click="UnpinItemFromStart_Click" Text="Unpin from the Start Menu"> diff --git a/Files/Views/LayoutModes/GridViewBrowser.xaml.cs b/Files/Views/LayoutModes/GridViewBrowser.xaml.cs index 433b9433be3c..5851515104ff 100644 --- a/Files/Views/LayoutModes/GridViewBrowser.xaml.cs +++ b/Files/Views/LayoutModes/GridViewBrowser.xaml.cs @@ -471,5 +471,20 @@ private void FileList_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e) ParentShellPageInstance.InteractionOperations.OpenSelectedItems(false); } } + + public async void PinItemToStart_Click(object sender, RoutedEventArgs e) + { + foreach (ListedItem listedItem in SelectedItems) + { + listedItem.IsItemPinnedToStart = await App.SecondaryTileHelper.TryPinFolderAsync(listedItem.ItemPath, listedItem.ItemName); + } + } + public async void UnpinItemFromStart_Click(object sender, RoutedEventArgs e) + { + foreach (ListedItem listedItem in SelectedItems) + { + listedItem.IsItemPinnedToStart = !(await App.SecondaryTileHelper.UnpinFromStartAsync(listedItem.ItemPath)); + } + } } } \ No newline at end of file From 28e79ff3293f8826a6b90bc9b217af49bf2cb173 Mon Sep 17 00:00:00 2001 From: Winston de Jong Date: Sun, 14 Mar 2021 15:40:15 -0700 Subject: [PATCH 09/16] Code factor --- Files/Views/LayoutModes/GenericFileBrowser.xaml.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Files/Views/LayoutModes/GenericFileBrowser.xaml.cs b/Files/Views/LayoutModes/GenericFileBrowser.xaml.cs index 7f4b9bf9989f..b5374a914904 100644 --- a/Files/Views/LayoutModes/GenericFileBrowser.xaml.cs +++ b/Files/Views/LayoutModes/GenericFileBrowser.xaml.cs @@ -646,6 +646,5 @@ public async void UnpinItemFromStart_Click(object sender, RoutedEventArgs e) listedItem.IsItemPinnedToStart = !(await App.SecondaryTileHelper.UnpinFromStartAsync(listedItem.ItemPath)); } } - } } From ea03093496295805d284307f6e327e77e2bb1ca6 Mon Sep 17 00:00:00 2001 From: Winston de Jong Date: Mon, 15 Mar 2021 15:26:49 -0700 Subject: [PATCH 10/16] Removed unused asset --- Files/Assets/TileBaseLogo.png | Bin 17845 -> 0 bytes Files/Files.csproj | 1 - 2 files changed, 1 deletion(-) delete mode 100644 Files/Assets/TileBaseLogo.png diff --git a/Files/Assets/TileBaseLogo.png b/Files/Assets/TileBaseLogo.png deleted file mode 100644 index 9d845f9ee4e1f28b675f8471ea0b5e43ec85aebb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17845 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ξ%FG?B3R_! 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 - From 689bf2e3489c70177248f2e6b054ba796601c53a Mon Sep 17 00:00:00 2001 From: Winston de Jong Date: Mon, 15 Mar 2021 15:31:53 -0700 Subject: [PATCH 11/16] Improved IsItemPinnedToStart --- Files/Filesystem/ListedItem.cs | 6 +----- .../StorageEnumerators/UniversalStorageEnumerator.cs | 3 +-- .../Filesystem/StorageEnumerators/Win32StorageEnumerator.cs | 3 +-- Files/Views/LayoutModes/GenericFileBrowser.xaml.cs | 4 ++-- Files/Views/LayoutModes/GridViewBrowser.xaml.cs | 4 ++-- 5 files changed, 7 insertions(+), 13 deletions(-) diff --git a/Files/Filesystem/ListedItem.cs b/Files/Filesystem/ListedItem.cs index 6a4aad2123d7..315c9dd88bb1 100644 --- a/Files/Filesystem/ListedItem.cs +++ b/Files/Filesystem/ListedItem.cs @@ -99,11 +99,7 @@ public BitmapImage FileImage } } - bool isItemPinnedToStart; - public bool IsItemPinnedToStart { - get => isItemPinnedToStart; - set => SetProperty(ref isItemPinnedToStart, value); - } + public bool IsItemPinnedToStart => App.SecondaryTileHelper.CheckFolderPinned(ItemPath); private BitmapImage iconOverlay; diff --git a/Files/Filesystem/StorageEnumerators/UniversalStorageEnumerator.cs b/Files/Filesystem/StorageEnumerators/UniversalStorageEnumerator.cs index 5757eadfc520..2e3eb80cd24a 100644 --- a/Files/Filesystem/StorageEnumerators/UniversalStorageEnumerator.cs +++ b/Files/Filesystem/StorageEnumerators/UniversalStorageEnumerator.cs @@ -175,8 +175,7 @@ private static async Task AddFolderAsync(StorageFolder folder, Stora ItemPath = string.IsNullOrEmpty(folder.Path) ? Path.Combine(currentStorageFolder.Path, folder.Name) : folder.Path, LoadUnknownTypeGlyph = false, FileSize = null, - FileSizeBytes = 0, - IsItemPinnedToStart = App.SecondaryTileHelper.CheckFolderPinned(folder.Path), + FileSizeBytes = 0 }; } return null; diff --git a/Files/Filesystem/StorageEnumerators/Win32StorageEnumerator.cs b/Files/Filesystem/StorageEnumerators/Win32StorageEnumerator.cs index 70f0e097204c..fa9517608e9e 100644 --- a/Files/Filesystem/StorageEnumerators/Win32StorageEnumerator.cs +++ b/Files/Filesystem/StorageEnumerators/Win32StorageEnumerator.cs @@ -162,8 +162,7 @@ CancellationToken cancellationToken LoadUnknownTypeGlyph = false, FileSize = null, FileSizeBytes = 0, - ContainsFilesOrFolders = FolderHelpers.CheckForFilesFolders(itemPath), - IsItemPinnedToStart = App.SecondaryTileHelper.CheckFolderPinned(itemPath) + ContainsFilesOrFolders = FolderHelpers.CheckForFilesFolders(itemPath) }; } diff --git a/Files/Views/LayoutModes/GenericFileBrowser.xaml.cs b/Files/Views/LayoutModes/GenericFileBrowser.xaml.cs index b5374a914904..371c6eb718a2 100644 --- a/Files/Views/LayoutModes/GenericFileBrowser.xaml.cs +++ b/Files/Views/LayoutModes/GenericFileBrowser.xaml.cs @@ -636,14 +636,14 @@ public async void PinItemToStart_Click(object sender, RoutedEventArgs e) { foreach (ListedItem listedItem in SelectedItems) { - listedItem.IsItemPinnedToStart = await App.SecondaryTileHelper.TryPinFolderAsync(listedItem.ItemPath, listedItem.ItemName); + await App.SecondaryTileHelper.TryPinFolderAsync(listedItem.ItemPath, listedItem.ItemName); } } public async void UnpinItemFromStart_Click(object sender, RoutedEventArgs e) { foreach (ListedItem listedItem in SelectedItems) { - listedItem.IsItemPinnedToStart = !(await App.SecondaryTileHelper.UnpinFromStartAsync(listedItem.ItemPath)); + await App.SecondaryTileHelper.UnpinFromStartAsync(listedItem.ItemPath); } } } diff --git a/Files/Views/LayoutModes/GridViewBrowser.xaml.cs b/Files/Views/LayoutModes/GridViewBrowser.xaml.cs index 5851515104ff..260b182ccc67 100644 --- a/Files/Views/LayoutModes/GridViewBrowser.xaml.cs +++ b/Files/Views/LayoutModes/GridViewBrowser.xaml.cs @@ -476,14 +476,14 @@ public async void PinItemToStart_Click(object sender, RoutedEventArgs e) { foreach (ListedItem listedItem in SelectedItems) { - listedItem.IsItemPinnedToStart = await App.SecondaryTileHelper.TryPinFolderAsync(listedItem.ItemPath, listedItem.ItemName); + await App.SecondaryTileHelper.TryPinFolderAsync(listedItem.ItemPath, listedItem.ItemName); } } public async void UnpinItemFromStart_Click(object sender, RoutedEventArgs e) { foreach (ListedItem listedItem in SelectedItems) { - listedItem.IsItemPinnedToStart = !(await App.SecondaryTileHelper.UnpinFromStartAsync(listedItem.ItemPath)); + await App.SecondaryTileHelper.UnpinFromStartAsync(listedItem.ItemPath); } } } From 0eff5b45747ae4ba0d6ebb312008ae7ec814a264 Mon Sep 17 00:00:00 2001 From: Winston de Jong Date: Mon, 15 Mar 2021 15:34:53 -0700 Subject: [PATCH 12/16] Removed duplicate compile reference --- Files/Files.csproj | 1 - 1 file changed, 1 deletion(-) diff --git a/Files/Files.csproj b/Files/Files.csproj index a37304128d7b..f0e9966020fb 100644 --- a/Files/Files.csproj +++ b/Files/Files.csproj @@ -233,7 +233,6 @@ - BasicPreview.xaml From 31f9d63e99b82a459a54ad5437dd95aac02c5e76 Mon Sep 17 00:00:00 2001 From: Winston de Jong Date: Mon, 15 Mar 2021 15:36:03 -0700 Subject: [PATCH 13/16] Removed assignment to pinned to start property --- Files/ViewModels/ItemViewModel.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/Files/ViewModels/ItemViewModel.cs b/Files/ViewModels/ItemViewModel.cs index a0ea3cfbecfa..005428819125 100644 --- a/Files/ViewModels/ItemViewModel.cs +++ b/Files/ViewModels/ItemViewModel.cs @@ -1158,7 +1158,6 @@ await DialogDisplayHelper.ShowDialogAsync( LoadUnknownTypeGlyph = false, FileSize = null, FileSizeBytes = 0, - IsItemPinnedToStart = App.SecondaryTileHelper.CheckFolderPinned(path), }; if (DateTimeOffset.TryParse(extraProps["System.DateCreated"] as string, out var dateCreated)) { @@ -1225,7 +1224,6 @@ await DialogDisplayHelper.ShowDialogAsync( LoadUnknownTypeGlyph = false, FileSize = null, FileSizeBytes = 0, - IsItemPinnedToStart = App.SecondaryTileHelper.CheckFolderPinned(path), }; if (!cacheOnly) { From 06d0ce8921dd6bb989cf628706833bcec47f38d1 Mon Sep 17 00:00:00 2001 From: Winston de Jong Date: Mon, 15 Mar 2021 15:50:33 -0700 Subject: [PATCH 14/16] Moved start pinning events to baselayout --- Files/BaseLayout.cs | 14 ++++++++++++++ .../Views/LayoutModes/GenericFileBrowser.xaml.cs | 15 --------------- Files/Views/LayoutModes/GridViewBrowser.xaml.cs | 15 --------------- 3 files changed, 14 insertions(+), 30 deletions(-) diff --git a/Files/BaseLayout.cs b/Files/BaseLayout.cs index 468dd7937c95..c6497b3e7605 100644 --- a/Files/BaseLayout.cs +++ b/Files/BaseLayout.cs @@ -1088,5 +1088,19 @@ public void BaseLayout_PointerWheelChanged(object sender, PointerRoutedEventArgs e.Handled = true; } } + public async void PinItemToStart_Click(object sender, RoutedEventArgs e) + { + foreach (ListedItem listedItem in SelectedItems) + { + await App.SecondaryTileHelper.TryPinFolderAsync(listedItem.ItemPath, listedItem.ItemName); + } + } + public async void UnpinItemFromStart_Click(object sender, RoutedEventArgs e) + { + foreach (ListedItem listedItem in SelectedItems) + { + await App.SecondaryTileHelper.UnpinFromStartAsync(listedItem.ItemPath); + } + } } } \ No newline at end of file diff --git a/Files/Views/LayoutModes/GenericFileBrowser.xaml.cs b/Files/Views/LayoutModes/GenericFileBrowser.xaml.cs index 371c6eb718a2..5c6290ad6d16 100644 --- a/Files/Views/LayoutModes/GenericFileBrowser.xaml.cs +++ b/Files/Views/LayoutModes/GenericFileBrowser.xaml.cs @@ -631,20 +631,5 @@ private void AllView_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e) tapDebounceTimer.Stop(); ParentShellPageInstance.InteractionOperations.OpenItem_Click(null, null); } - - public async void PinItemToStart_Click(object sender, RoutedEventArgs e) - { - foreach (ListedItem listedItem in SelectedItems) - { - await App.SecondaryTileHelper.TryPinFolderAsync(listedItem.ItemPath, listedItem.ItemName); - } - } - public async void UnpinItemFromStart_Click(object sender, RoutedEventArgs e) - { - foreach (ListedItem listedItem in SelectedItems) - { - await App.SecondaryTileHelper.UnpinFromStartAsync(listedItem.ItemPath); - } - } } } diff --git a/Files/Views/LayoutModes/GridViewBrowser.xaml.cs b/Files/Views/LayoutModes/GridViewBrowser.xaml.cs index 260b182ccc67..433b9433be3c 100644 --- a/Files/Views/LayoutModes/GridViewBrowser.xaml.cs +++ b/Files/Views/LayoutModes/GridViewBrowser.xaml.cs @@ -471,20 +471,5 @@ private void FileList_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e) ParentShellPageInstance.InteractionOperations.OpenSelectedItems(false); } } - - public async void PinItemToStart_Click(object sender, RoutedEventArgs e) - { - foreach (ListedItem listedItem in SelectedItems) - { - await App.SecondaryTileHelper.TryPinFolderAsync(listedItem.ItemPath, listedItem.ItemName); - } - } - public async void UnpinItemFromStart_Click(object sender, RoutedEventArgs e) - { - foreach (ListedItem listedItem in SelectedItems) - { - await App.SecondaryTileHelper.UnpinFromStartAsync(listedItem.ItemPath); - } - } } } \ No newline at end of file From 1ec4035f3909c2a0b8bc36af275e01681d4a50a3 Mon Sep 17 00:00:00 2001 From: Winston de Jong Date: Thu, 18 Mar 2021 18:42:12 -0400 Subject: [PATCH 15/16] Removed asset generator and added assets --- Files/Assets/tile-0-250x250.png | Bin 0 -> 1659 bytes Files/Assets/tile-0-300x300.png | Bin 0 -> 1549 bytes Files/Files.csproj | 6 +-- Files/Helpers/FolderGlyphAssetHelper.cs | 68 ------------------------ Files/Helpers/SecondaryTileHelper.cs | 15 ++---- 5 files changed, 6 insertions(+), 83 deletions(-) create mode 100644 Files/Assets/tile-0-250x250.png create mode 100644 Files/Assets/tile-0-300x300.png delete mode 100644 Files/Helpers/FolderGlyphAssetHelper.cs diff --git a/Files/Assets/tile-0-250x250.png b/Files/Assets/tile-0-250x250.png new file mode 100644 index 0000000000000000000000000000000000000000..0d04f20a0bb5b1526bc3d726712c503902e27019 GIT binary patch literal 1659 zcmaJ>dsNbA7{;9})7;V$^S&j?$i$c{#Y=fX1uv}7bfjV~CuyP*B!hWt>!y@7sipaw z=4CKj=t6_3sm-!95EX0QP&bz*3TTQENVT7}zxSQz7KJm)>vb43!Pxi{sD+6!E!{Cs95;WCSS|4%xRQxiUF9iFPW{4= zMrHemDhp~dw)uVQ=+L&X!-g94DPaK!&JfYZatVcg9v@Y*LMQyZ?Nt^#Z0EXCPY|EA zcB3A#@>arhIq5u&FyufL31I5NnE_kaZZfw7hoz)kk#7q5hX32M-7(LVQcl<{_!8G1 z7)F%GIm=@LymuAk8KanPL^(%OX>V&&-}S-FWu}I_mj7tsT)Jme8(0amX@1-MPfHHRD%L#Rc!K$ z@woAbyS8vf*d??gBz0%4S917_O8Leiu?2BRKgMFtXlh&ECJ}Y7{+>1SsBCe$SUALS zmy}p61C*M|t^YLCQ=@KbGS4fElmkj`dBR}xm-@YJE-viVgMUAJy0Ofli&XR=4a;@m zz9B^_rweo4z7fOuXT@W`6&zHE+Hn=M&vXf(#L>I`*>tH-DMrse3hxnnKhHMt*7(K6BKz zz9_r9#HYV`dFn}o4t9?=0L4aBG~CIIuCwOlr&7~^*I%Z^?k|yEe@$NYU5r1l(Z9`0 z90rV|kKU5jEuZ`Ox!wZRJ2}3oNnuTH$`u$sjuc;Hzsw;z{W$6rs>JAe7pHk_3FewU z=#{vVlGlJ98CIWlOAveBsopV9LUL>3uIH1oJZMKHSDtv=62yI@$FuJDPPqi5(j13t z^tt@GE}~&^>U^84zRx{zJAt_`%~8%f3>XPl2+emmP1TpCU{*Em{?s`q0Oh1UaM% zsQv(Ud)+;Ai@MTiZytjRQ_t3T;ksrA-KBr#$BPt>J=p?Xcic_5rP9Mrt6BwBNvW4E2K z2Mi9K1RD=nbG_bMGHK#F`}L&HPX}TT4}?C)1nY;cdcf;`glO1}D@Lx?K_y`Y=08vz ztbP{oSNAbtOS5K!=y%dtpf#-c($^UD)=Vl`#W^(`77GWC%*xMD%O&(--L_t?ya-svv5 z+$!d%{MVa?;lFmK;`7OG1$mxlup_d&DT1&1eV3vPV=RQ7HhL;Qb(dVX5==vu`r|@w>okQJMMCr4$>Mn#KJi-<I_x(Qa?|t9r{k*?FerXQ&mJ(v}VgLX@0%Bzb z6KKc29XTxUuUrX*0uc&_S(*X}J*Sw0;NV>oI}-qagcjfNIwXii?_0Tr3xu|BLZo1s z*8sqw=MXa!r>NWP325pqxPr(sJw9Y5q|y)DUh1fPJUcn!_zp5jOoHIy1|PsXBqs&5 zWFPc+dDi@dDpu+YE~)XDy9~d@Sm}tirmPhfTWio}QE{R3Oo4GUCuR~Sp2jv0Vl*3X zQW*#64V-5m-$pa|lh+u{hL?o|Jl}B?%JO~g!F$?B^PfIMo#MzJ^~U=*D;GNk9!=rG z26u{r$5V4pe=!ZzwTn>?O2j_D>P+L#tsDS-KwKD@%c5t)c{r-EOu`8JIS?k@Q3It= zyMP;AE6aA>QZ-J6H2p%JO&oJA@68Z`L9R!Ng)gGB4;xF)A1N0_)$G3)a^!&JLjYmcgVO1b#Vz4n*(Vy>Szn0B9Sd? zVlEZgL#m_%w%K6J%*HFSe#GrOk2>~bVqN6k^m1m?y8+!?_cAt$HP!x*^<`5ZN5I0Q zt(?itV9D`t%_ZJ!12a?(6{+XFu;LT?>ztxp?@C2+p+`AC`ieZryn_#r_PpOS0vM)E3Wjd!&}WOmC9SiVDsaR< zuGuYFTMUZf%f~-v)`oN~vdh-YH7fA_+*o;ULn~#381l;uH;Ldb(WJ)Li7W z@)D$U{^KKwFohDX275s|j;c(wbw7&l*NM_earIs|8=Km1Xco>Je?Rthu=3?p#M3w_ z=?;Wg=0nQq62;NdguHmEYD$(Q1}&T^aB4XSnb-`_G6yJ~8}}6kgGjrQV@@HvF4ISl zYi46>7i*xPYx>L}xU28R{!9h+qLM=}y~owR3-Z^$=1m0~ZvzqPNVQccNc3(-Cwr++ z0*CnaL>uRb??Iw@CjT#51&+&Vt{SfvaeL4jPsH|X0)3atSSzE9EFxHsHoPF~c~1eH z=f-M$pv?NTiqEue6fU#h+je=puu8=7{o3Vl}7{@ocYJx@O2bcZL;h;b UnRc*LbKSpznA@8XOn*uG7bxEVG5`Po literal 0 HcmV?d00001 diff --git a/Files/Files.csproj b/Files/Files.csproj index d5fd1fc3662e..c4e18c588dec 100644 --- a/Files/Files.csproj +++ b/Files/Files.csproj @@ -215,7 +215,6 @@ - @@ -614,6 +613,8 @@ + + @@ -1027,9 +1028,6 @@ 2.0.4 - - 1.25.0 - diff --git a/Files/Helpers/FolderGlyphAssetHelper.cs b/Files/Helpers/FolderGlyphAssetHelper.cs deleted file mode 100644 index a183302dbcd4..000000000000 --- a/Files/Helpers/FolderGlyphAssetHelper.cs +++ /dev/null @@ -1,68 +0,0 @@ -using Microsoft.Graphics.Canvas; -using Microsoft.Graphics.Canvas.Svg; -using Microsoft.Graphics.Canvas.Text; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Numerics; -using System.Text; -using System.Threading.Tasks; -using Windows.Foundation; -using Windows.Storage; -using Windows.UI; - -namespace Files.Helpers -{ - public static class FolderGlyphAssetHelper - { - public static async Task<(Uri Path150x150, Uri Path71x71)> GenerateAssetsAsync(string glyph = "") - { - var small = await GenerateAssetAsync(250, 250, 56, 0.5f, glyph); - var medium = await GenerateAssetAsync(300, 300, 42, 0.4f, glyph); - return (medium, small); - } - - public static async Task GenerateAssetAsync(float widthDpi, float heightDpi, float fontSize, float scale, string glyph = "") - { - var image = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/FolderIcon2Large.svg")); - CanvasDevice device = CanvasDevice.GetSharedDevice(); - CanvasRenderTarget offscreen = new CanvasRenderTarget(device, widthDpi, heightDpi, 64); - var width = offscreen.SizeInPixels.Width; - var height = offscreen.SizeInPixels.Height; - using CanvasDrawingSession ds = offscreen.CreateDrawingSession(); - ds.Clear(Colors.Transparent); - ds.Units = CanvasUnits.Pixels; - ds.Antialiasing = CanvasAntialiasing.Antialiased; - ds.TextAntialiasing = Microsoft.Graphics.Canvas.Text.CanvasTextAntialiasing.ClearType; - var canvasSvgDocument = await CanvasSvgDocument.LoadAsync(device, await image.OpenReadAsync()); - ds.Transform *= Matrix3x2.CreateScale(scale, scale); - ds.DrawSvg(canvasSvgDocument, new Size(width, height), (width - (256 * scale)) / scale / 2, (height - (256 * scale)) / scale / 2); - ds.Transform = Matrix3x2.CreateTranslation(0, 0); - - // skip this step if the glyph is empty - if(!string.IsNullOrEmpty(glyph)) - { - // Only use segoe fluent icons if the machine has them installed - var font = CanvasFontSet.GetSystemFontSet().Fonts.Any(f => f.FamilyNames.Values.Contains("Segoe Fluent Icons")) ? "Segoe Fluent Icons" : "Segoe MDL2 Assets"; - ds.DrawText(glyph, width / 2, height * 0.53f, Colors.Black, new Microsoft.Graphics.Canvas.Text.CanvasTextFormat() - { - FontFamily = font, - FontSize = fontSize, - HorizontalAlignment = Microsoft.Graphics.Canvas.Text.CanvasHorizontalAlignment.Center, - VerticalAlignment = Microsoft.Graphics.Canvas.Text.CanvasVerticalAlignment.Center, - FontWeight = Windows.UI.Text.FontWeights.Medium, - }); - } - - ds.Flush(); - - var name = $"tile-{(!string.IsNullOrEmpty(glyph) ? (int)glyph[0] : 0)}-{widthDpi}x{heightDpi}.png"; - var saveFolder = await ApplicationData.Current.LocalFolder.CreateFolderAsync("Tiles", CreationCollisionOption.OpenIfExists); - var saveFile = await saveFolder.CreateFileAsync(name, CreationCollisionOption.OpenIfExists); - using var fileStream = await saveFile.OpenAsync(FileAccessMode.ReadWrite); - await offscreen.SaveAsync(fileStream, CanvasBitmapFileFormat.Png); - await fileStream.FlushAsync(); - return new Uri($"ms-appdata:///local/Tiles/{name}"); - } - } -} diff --git a/Files/Helpers/SecondaryTileHelper.cs b/Files/Helpers/SecondaryTileHelper.cs index ade786cac4a2..1f88c5e49dad 100644 --- a/Files/Helpers/SecondaryTileHelper.cs +++ b/Files/Helpers/SecondaryTileHelper.cs @@ -42,24 +42,17 @@ public async Task TryPinFolderAsync(string path, string name) var result = false; try { - var glyph = ""; - //var glyph = GlyphHelper.GetItemIcon(path); - // ignore the default - //if (glyph == "\uE8B7") - //{ - // glyph = ""; - //} - - (Uri Path150x150, Uri Path71x71) logos = await FolderGlyphAssetHelper.GenerateAssetsAsync(glyph); + Uri Path150x150 = new Uri("ms-appx:///Assets/tile-0-300x300.png"); + Uri Path71x71 = new Uri("ms-appx:///Assets/tile-0-250x250.png"); SecondaryTile tile = new SecondaryTile( GetTileID(path), name, path, - logos.Path150x150, + Path150x150, TileSize.Square150x150); - tile.VisualElements.Square71x71Logo = logos.Path71x71; + tile.VisualElements.Square71x71Logo = Path71x71; tile.VisualElements.ShowNameOnSquare150x150Logo = true; result = await tile.RequestCreateAsync(); } From 20d6531ba42503602d5d6b19a0853fe09964e5c7 Mon Sep 17 00:00:00 2001 From: Marco Gavelli Date: Sat, 20 Mar 2021 20:45:13 +0100 Subject: [PATCH 16/16] Fix item not shown when shift is held --- Files/BaseLayout.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Files/BaseLayout.cs b/Files/BaseLayout.cs index c6497b3e7605..e1040f2f55f6 100644 --- a/Files/BaseLayout.cs +++ b/Files/BaseLayout.cs @@ -796,7 +796,7 @@ public void RightClickItemContextMenu_Opening(object sender, object e) } //Shift key is not held, remove extras here - if(Window.Current.CoreWindow.GetKeyState(VirtualKey.Shift) != CoreVirtualKeyStates.Down) + if(!Window.Current.CoreWindow.GetKeyState(VirtualKey.Shift).HasFlag(CoreVirtualKeyStates.Down)) { UnloadMenuFlyoutItemByName("PinItemToStart"); UnloadMenuFlyoutItemByName("UnpinItemFromStart");