Skip to content

Commit 0bc2e71

Browse files
committed
refactor: migrate toast notifications from deprecated Microsoft.Toolkit.Uwp.Notifications to WinRT API
1 parent 7e67727 commit 0bc2e71

7 files changed

Lines changed: 20 additions & 276 deletions

File tree

src/DeepPurge.App/packages.lock.json

Lines changed: 0 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -8,39 +8,6 @@
88
"resolved": "8.2.2",
99
"contentHash": "r0g0k9tGYdrnz8R7T3x5UiokDffeevzK/2P/9SBL6fqLgN8B157MIi/bVUWI1KAz6ZorZrK9AdABCWUeXZZsvA=="
1010
},
11-
"Microsoft.NETCore.Platforms": {
12-
"type": "Transitive",
13-
"resolved": "3.1.0",
14-
"contentHash": "z7aeg8oHln2CuNulfhiLYxCVMPEwBl3rzicjvIX+4sUuCwvXw5oXQEtbiU2c0z4qYL5L3Kmx0mMA/+t/SbY67w=="
15-
},
16-
"Microsoft.Toolkit.Uwp.Notifications": {
17-
"type": "Transitive",
18-
"resolved": "7.1.3",
19-
"contentHash": "A1dglAzb24gjehmb7DwGd07mfyZ1gacAK7ObE0KwDlRc3mayH2QW7cSOy3TkkyELjLg19OQBuhPOj4SpXET9lg==",
20-
"dependencies": {
21-
"Microsoft.Win32.Registry": "4.7.0",
22-
"System.Drawing.Common": "4.7.0",
23-
"System.Reflection.Emit": "4.7.0",
24-
"System.ValueTuple": "4.5.0"
25-
}
26-
},
27-
"Microsoft.Win32.Registry": {
28-
"type": "Transitive",
29-
"resolved": "4.7.0",
30-
"contentHash": "KSrRMb5vNi0CWSGG1++id2ZOs/1QhRqROt+qgbEAdQuGjGrFcl4AOl4/exGPUYz2wUnU42nvJqon1T3U0kPXLA==",
31-
"dependencies": {
32-
"System.Security.AccessControl": "4.7.0",
33-
"System.Security.Principal.Windows": "4.7.0"
34-
}
35-
},
36-
"Microsoft.Win32.SystemEvents": {
37-
"type": "Transitive",
38-
"resolved": "4.7.0",
39-
"contentHash": "mtVirZr++rq+XCDITMUdnETD59XoeMxSpLRIII7JRI6Yj0LEDiO1pPn0ktlnIj12Ix8bfvQqQDMMIF9wC98oCA==",
40-
"dependencies": {
41-
"Microsoft.NETCore.Platforms": "3.1.0"
42-
}
43-
},
4411
"System.CodeDom": {
4512
"type": "Transitive",
4613
"resolved": "8.0.0",
@@ -51,15 +18,6 @@
5118
"resolved": "8.0.1",
5219
"contentHash": "n1ZP7NM2Gkn/MgD8+eOT5MulMj6wfeQMNS2Pizvq5GHCZfjlFMXV2irQlQmJhwA2VABC57M0auudO89Iu2uRLg=="
5320
},
54-
"System.Drawing.Common": {
55-
"type": "Transitive",
56-
"resolved": "4.7.0",
57-
"contentHash": "v+XbyYHaZjDfn0ENmJEV1VYLgGgCTx1gnfOBcppowbpOAriglYgGCvFCPr2EEZyBvXlpxbEsTwkOlInl107ahA==",
58-
"dependencies": {
59-
"Microsoft.NETCore.Platforms": "3.1.0",
60-
"Microsoft.Win32.SystemEvents": "4.7.0"
61-
}
62-
},
6321
"System.IO.Hashing": {
6422
"type": "Transitive",
6523
"resolved": "8.0.0",
@@ -73,25 +31,6 @@
7331
"System.CodeDom": "8.0.0"
7432
}
7533
},
76-
"System.Reflection.Emit": {
77-
"type": "Transitive",
78-
"resolved": "4.7.0",
79-
"contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ=="
80-
},
81-
"System.Security.AccessControl": {
82-
"type": "Transitive",
83-
"resolved": "4.7.0",
84-
"contentHash": "JECvTt5aFF3WT3gHpfofL2MNNP6v84sxtXxpqhLBCcDRzqsPBmHhQ6shv4DwwN2tRlzsUxtb3G9M3763rbXKDg==",
85-
"dependencies": {
86-
"Microsoft.NETCore.Platforms": "3.1.0",
87-
"System.Security.Principal.Windows": "4.7.0"
88-
}
89-
},
90-
"System.Security.Principal.Windows": {
91-
"type": "Transitive",
92-
"resolved": "4.7.0",
93-
"contentHash": "ojD0PX0XhneCsUbAZVKdb7h/70vyYMDYs85lwEI+LngEONe/17A0cFaRFqZU+sOEidcVswYWikYOQ9PPfjlbtQ=="
94-
},
9534
"System.ServiceProcess.ServiceController": {
9635
"type": "Transitive",
9736
"resolved": "8.0.1",
@@ -100,15 +39,9 @@
10039
"System.Diagnostics.EventLog": "8.0.1"
10140
}
10241
},
103-
"System.ValueTuple": {
104-
"type": "Transitive",
105-
"resolved": "4.5.0",
106-
"contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ=="
107-
},
10842
"deeppurge.core": {
10943
"type": "Project",
11044
"dependencies": {
111-
"Microsoft.Toolkit.Uwp.Notifications": "[7.1.3, )",
11245
"System.IO.Hashing": "[8.0.0, )",
11346
"System.Management": "[8.0.0, )",
11447
"System.ServiceProcess.ServiceController": "[8.0.1, )"

src/DeepPurge.Cli/packages.lock.json

Lines changed: 0 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -2,39 +2,6 @@
22
"version": 1,
33
"dependencies": {
44
"net8.0-windows10.0.17763": {
5-
"Microsoft.NETCore.Platforms": {
6-
"type": "Transitive",
7-
"resolved": "3.1.0",
8-
"contentHash": "z7aeg8oHln2CuNulfhiLYxCVMPEwBl3rzicjvIX+4sUuCwvXw5oXQEtbiU2c0z4qYL5L3Kmx0mMA/+t/SbY67w=="
9-
},
10-
"Microsoft.Toolkit.Uwp.Notifications": {
11-
"type": "Transitive",
12-
"resolved": "7.1.3",
13-
"contentHash": "A1dglAzb24gjehmb7DwGd07mfyZ1gacAK7ObE0KwDlRc3mayH2QW7cSOy3TkkyELjLg19OQBuhPOj4SpXET9lg==",
14-
"dependencies": {
15-
"Microsoft.Win32.Registry": "4.7.0",
16-
"System.Drawing.Common": "4.7.0",
17-
"System.Reflection.Emit": "4.7.0",
18-
"System.ValueTuple": "4.5.0"
19-
}
20-
},
21-
"Microsoft.Win32.Registry": {
22-
"type": "Transitive",
23-
"resolved": "4.7.0",
24-
"contentHash": "KSrRMb5vNi0CWSGG1++id2ZOs/1QhRqROt+qgbEAdQuGjGrFcl4AOl4/exGPUYz2wUnU42nvJqon1T3U0kPXLA==",
25-
"dependencies": {
26-
"System.Security.AccessControl": "4.7.0",
27-
"System.Security.Principal.Windows": "4.7.0"
28-
}
29-
},
30-
"Microsoft.Win32.SystemEvents": {
31-
"type": "Transitive",
32-
"resolved": "4.7.0",
33-
"contentHash": "mtVirZr++rq+XCDITMUdnETD59XoeMxSpLRIII7JRI6Yj0LEDiO1pPn0ktlnIj12Ix8bfvQqQDMMIF9wC98oCA==",
34-
"dependencies": {
35-
"Microsoft.NETCore.Platforms": "3.1.0"
36-
}
37-
},
385
"System.CodeDom": {
396
"type": "Transitive",
407
"resolved": "8.0.0",
@@ -45,15 +12,6 @@
4512
"resolved": "8.0.1",
4613
"contentHash": "n1ZP7NM2Gkn/MgD8+eOT5MulMj6wfeQMNS2Pizvq5GHCZfjlFMXV2irQlQmJhwA2VABC57M0auudO89Iu2uRLg=="
4714
},
48-
"System.Drawing.Common": {
49-
"type": "Transitive",
50-
"resolved": "4.7.0",
51-
"contentHash": "v+XbyYHaZjDfn0ENmJEV1VYLgGgCTx1gnfOBcppowbpOAriglYgGCvFCPr2EEZyBvXlpxbEsTwkOlInl107ahA==",
52-
"dependencies": {
53-
"Microsoft.NETCore.Platforms": "3.1.0",
54-
"Microsoft.Win32.SystemEvents": "4.7.0"
55-
}
56-
},
5715
"System.IO.Hashing": {
5816
"type": "Transitive",
5917
"resolved": "8.0.0",
@@ -67,25 +25,6 @@
6725
"System.CodeDom": "8.0.0"
6826
}
6927
},
70-
"System.Reflection.Emit": {
71-
"type": "Transitive",
72-
"resolved": "4.7.0",
73-
"contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ=="
74-
},
75-
"System.Security.AccessControl": {
76-
"type": "Transitive",
77-
"resolved": "4.7.0",
78-
"contentHash": "JECvTt5aFF3WT3gHpfofL2MNNP6v84sxtXxpqhLBCcDRzqsPBmHhQ6shv4DwwN2tRlzsUxtb3G9M3763rbXKDg==",
79-
"dependencies": {
80-
"Microsoft.NETCore.Platforms": "3.1.0",
81-
"System.Security.Principal.Windows": "4.7.0"
82-
}
83-
},
84-
"System.Security.Principal.Windows": {
85-
"type": "Transitive",
86-
"resolved": "4.7.0",
87-
"contentHash": "ojD0PX0XhneCsUbAZVKdb7h/70vyYMDYs85lwEI+LngEONe/17A0cFaRFqZU+sOEidcVswYWikYOQ9PPfjlbtQ=="
88-
},
8928
"System.ServiceProcess.ServiceController": {
9029
"type": "Transitive",
9130
"resolved": "8.0.1",
@@ -94,15 +33,9 @@
9433
"System.Diagnostics.EventLog": "8.0.1"
9534
}
9635
},
97-
"System.ValueTuple": {
98-
"type": "Transitive",
99-
"resolved": "4.5.0",
100-
"contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ=="
101-
},
10236
"deeppurge.core": {
10337
"type": "Project",
10438
"dependencies": {
105-
"Microsoft.Toolkit.Uwp.Notifications": "[7.1.3, )",
10639
"System.IO.Hashing": "[8.0.0, )",
10740
"System.Management": "[8.0.0, )",
10841
"System.ServiceProcess.ServiceController": "[8.0.1, )"

src/DeepPurge.Core/DeepPurge.Core.csproj

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,7 @@
3535
</ItemGroup>
3636

3737
<ItemGroup>
38-
<PackageReference Include="Microsoft.Toolkit.Uwp.Notifications" Version="7.1.3" />
39-
<PackageReference Include="System.Management" Version="8.0.0" />
38+
<PackageReference Include="System.Management" Version="8.0.0" />
4039
<PackageReference Include="System.ServiceProcess.ServiceController" Version="8.0.1" />
4140
<PackageReference Include="System.IO.Hashing" Version="8.0.0" />
4241
</ItemGroup>

src/DeepPurge.Core/Diagnostics/ToastNotifier.cs

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,28 @@
1-
using Microsoft.Toolkit.Uwp.Notifications;
1+
using Windows.Data.Xml.Dom;
2+
using Windows.UI.Notifications;
23

34
namespace DeepPurge.Core.Diagnostics;
45

56
public static class ToastNotifier
67
{
8+
private const string AppId = "DeepPurge";
9+
710
public static void Show(string title, string body)
811
{
912
try
1013
{
11-
new ToastContentBuilder()
12-
.AddText(title)
13-
.AddText(body)
14-
.Show();
14+
var xml = $@"<toast>
15+
<visual>
16+
<binding template='ToastGeneric'>
17+
<text>{EscapeXml(title)}</text>
18+
<text>{EscapeXml(body)}</text>
19+
</binding>
20+
</visual>
21+
</toast>";
22+
var doc = new XmlDocument();
23+
doc.LoadXml(xml);
24+
var toast = new ToastNotification(doc);
25+
ToastNotificationManager.CreateToastNotifier(AppId).Show(toast);
1526
}
1627
catch (Exception ex)
1728
{
@@ -33,4 +44,7 @@ private static string FormatBytes(long bytes)
3344
while (b >= 1024 && i < u.Length - 1) { b /= 1024; i++; }
3445
return $"{b:F1} {u[i]}";
3546
}
47+
48+
private static string EscapeXml(string s) =>
49+
s.Replace("&", "&amp;").Replace("<", "&lt;").Replace(">", "&gt;");
3650
}

src/DeepPurge.Core/Safety/SafetyGuard.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,6 @@ public static bool IsRegistrySymlink(Microsoft.Win32.RegistryKey key)
217217
{
218218
try
219219
{
220-
const int REG_OPTION_OPEN_LINK = 0x00000008;
221220
var field = typeof(Microsoft.Win32.RegistryKey).GetField("_hkey",
222221
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
223222
if (field == null) return false;

src/DeepPurge.Core/packages.lock.json

Lines changed: 0 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,6 @@
22
"version": 1,
33
"dependencies": {
44
"net8.0-windows10.0.17763": {
5-
"Microsoft.Toolkit.Uwp.Notifications": {
6-
"type": "Direct",
7-
"requested": "[7.1.3, )",
8-
"resolved": "7.1.3",
9-
"contentHash": "A1dglAzb24gjehmb7DwGd07mfyZ1gacAK7ObE0KwDlRc3mayH2QW7cSOy3TkkyELjLg19OQBuhPOj4SpXET9lg==",
10-
"dependencies": {
11-
"Microsoft.Win32.Registry": "4.7.0",
12-
"System.Drawing.Common": "4.7.0",
13-
"System.Reflection.Emit": "4.7.0",
14-
"System.ValueTuple": "4.5.0"
15-
}
16-
},
175
"System.IO.Hashing": {
186
"type": "Direct",
197
"requested": "[8.0.0, )",
@@ -38,28 +26,6 @@
3826
"System.Diagnostics.EventLog": "8.0.1"
3927
}
4028
},
41-
"Microsoft.NETCore.Platforms": {
42-
"type": "Transitive",
43-
"resolved": "3.1.0",
44-
"contentHash": "z7aeg8oHln2CuNulfhiLYxCVMPEwBl3rzicjvIX+4sUuCwvXw5oXQEtbiU2c0z4qYL5L3Kmx0mMA/+t/SbY67w=="
45-
},
46-
"Microsoft.Win32.Registry": {
47-
"type": "Transitive",
48-
"resolved": "4.7.0",
49-
"contentHash": "KSrRMb5vNi0CWSGG1++id2ZOs/1QhRqROt+qgbEAdQuGjGrFcl4AOl4/exGPUYz2wUnU42nvJqon1T3U0kPXLA==",
50-
"dependencies": {
51-
"System.Security.AccessControl": "4.7.0",
52-
"System.Security.Principal.Windows": "4.7.0"
53-
}
54-
},
55-
"Microsoft.Win32.SystemEvents": {
56-
"type": "Transitive",
57-
"resolved": "4.7.0",
58-
"contentHash": "mtVirZr++rq+XCDITMUdnETD59XoeMxSpLRIII7JRI6Yj0LEDiO1pPn0ktlnIj12Ix8bfvQqQDMMIF9wC98oCA==",
59-
"dependencies": {
60-
"Microsoft.NETCore.Platforms": "3.1.0"
61-
}
62-
},
6329
"System.CodeDom": {
6430
"type": "Transitive",
6531
"resolved": "8.0.0",
@@ -69,39 +35,6 @@
6935
"type": "Transitive",
7036
"resolved": "8.0.1",
7137
"contentHash": "n1ZP7NM2Gkn/MgD8+eOT5MulMj6wfeQMNS2Pizvq5GHCZfjlFMXV2irQlQmJhwA2VABC57M0auudO89Iu2uRLg=="
72-
},
73-
"System.Drawing.Common": {
74-
"type": "Transitive",
75-
"resolved": "4.7.0",
76-
"contentHash": "v+XbyYHaZjDfn0ENmJEV1VYLgGgCTx1gnfOBcppowbpOAriglYgGCvFCPr2EEZyBvXlpxbEsTwkOlInl107ahA==",
77-
"dependencies": {
78-
"Microsoft.NETCore.Platforms": "3.1.0",
79-
"Microsoft.Win32.SystemEvents": "4.7.0"
80-
}
81-
},
82-
"System.Reflection.Emit": {
83-
"type": "Transitive",
84-
"resolved": "4.7.0",
85-
"contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ=="
86-
},
87-
"System.Security.AccessControl": {
88-
"type": "Transitive",
89-
"resolved": "4.7.0",
90-
"contentHash": "JECvTt5aFF3WT3gHpfofL2MNNP6v84sxtXxpqhLBCcDRzqsPBmHhQ6shv4DwwN2tRlzsUxtb3G9M3763rbXKDg==",
91-
"dependencies": {
92-
"Microsoft.NETCore.Platforms": "3.1.0",
93-
"System.Security.Principal.Windows": "4.7.0"
94-
}
95-
},
96-
"System.Security.Principal.Windows": {
97-
"type": "Transitive",
98-
"resolved": "4.7.0",
99-
"contentHash": "ojD0PX0XhneCsUbAZVKdb7h/70vyYMDYs85lwEI+LngEONe/17A0cFaRFqZU+sOEidcVswYWikYOQ9PPfjlbtQ=="
100-
},
101-
"System.ValueTuple": {
102-
"type": "Transitive",
103-
"resolved": "4.5.0",
104-
"contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ=="
10538
}
10639
}
10740
}

0 commit comments

Comments
 (0)