|
14 | 14 | using System.Linq; |
15 | 15 | using System.Reflection; |
16 | 16 | using System.Runtime.CompilerServices; |
17 | | -using System.Threading.Tasks; |
18 | 17 | using Windows.Foundation.Collections; |
19 | 18 | using Windows.Storage; |
20 | | -using Windows.System; |
21 | 19 |
|
22 | 20 | namespace Files.View_Models |
23 | 21 | { |
@@ -277,43 +275,6 @@ public TimeStyle DisplayedTimeStyle |
277 | 275 | } |
278 | 276 | } |
279 | 277 |
|
280 | | - private static readonly Uri dummyUri = new Uri("mailto:[email protected]"); |
281 | | - |
282 | | - /// <summary> |
283 | | - /// Check if target <paramref name="packageName"/> is installed on this device. |
284 | | - /// </summary> |
285 | | - /// <param name="packageName">Package name in format: "949FFEAB.Email.cz_refxrrjvvv3cw"</param> |
286 | | - /// <returns>True is app is installed on this device, false otherwise.</returns> |
287 | | - public static async Task<bool> IsAppInstalledAsync(string packageName) |
288 | | - { |
289 | | - try |
290 | | - { |
291 | | - bool appInstalled; |
292 | | - LaunchQuerySupportStatus result = await Launcher.QueryUriSupportAsync(dummyUri, LaunchQuerySupportType.Uri, packageName); |
293 | | - switch (result) |
294 | | - { |
295 | | - case LaunchQuerySupportStatus.Available: |
296 | | - case LaunchQuerySupportStatus.NotSupported: |
297 | | - appInstalled = true; |
298 | | - break; |
299 | | - //case LaunchQuerySupportStatus.AppNotInstalled: |
300 | | - //case LaunchQuerySupportStatus.AppUnavailable: |
301 | | - //case LaunchQuerySupportStatus.Unknown: |
302 | | - default: |
303 | | - appInstalled = false; |
304 | | - break; |
305 | | - } |
306 | | - |
307 | | - Debug.WriteLine($"App {packageName}, query status: {result}, installed: {appInstalled}"); |
308 | | - return appInstalled; |
309 | | - } |
310 | | - catch (Exception ex) |
311 | | - { |
312 | | - Debug.WriteLine($"Error checking if app {packageName} is installed. Error: {ex}"); |
313 | | - return false; |
314 | | - } |
315 | | - } |
316 | | - |
317 | 278 | public TerminalFileModel TerminalsModel { get; set; } |
318 | 279 |
|
319 | 280 | public StorageFile TerminalsModelFile; |
@@ -350,21 +311,29 @@ private async void LoadTerminalApps() |
350 | 311 | TerminalsModel = JsonConvert.DeserializeObject<TerminalFileModel>(defaultContent); |
351 | 312 | } |
352 | 313 |
|
353 | | - //Ensure Windows Terminal is not already in List |
354 | | - if (TerminalsModel.Terminals.FirstOrDefault(x => x.Path.Equals("wt.exe", StringComparison.OrdinalIgnoreCase)) == null) |
| 314 | + var windowsTerminal = new TerminalModel() |
355 | 315 | { |
356 | | - if (await IsAppInstalledAsync("Microsoft.WindowsTerminal_8wekyb3d8bbwe")) |
357 | | - { |
358 | | - TerminalsModel.Terminals.Add(new TerminalModel() |
359 | | - { |
360 | | - Id = TerminalsModel.Terminals.Count + 1, |
361 | | - Name = "Windows Terminal", |
362 | | - Path = "wt.exe", |
363 | | - Arguments = "-d {0}", |
364 | | - Icon = "" |
365 | | - }); |
366 | | - await FileIO.WriteTextAsync(TerminalsModelFile, JsonConvert.SerializeObject(TerminalsModel, Formatting.Indented)); |
367 | | - } |
| 316 | + Id = TerminalsModel.Terminals.Count + 1, |
| 317 | + Name = "Windows Terminal", |
| 318 | + Path = "wt.exe", |
| 319 | + Arguments = "-d {0}", |
| 320 | + Icon = "" |
| 321 | + }; |
| 322 | + |
| 323 | + var fluentTerminal = new TerminalModel() |
| 324 | + { |
| 325 | + Id = TerminalsModel.Terminals.Count + 1, |
| 326 | + Name = "Fluent Terminal", |
| 327 | + Path = "flute.exe", |
| 328 | + Arguments = "new \"{0}\"", |
| 329 | + Icon = "" |
| 330 | + }; |
| 331 | + |
| 332 | + bool isWindowsTerminalAddedOrRemoved = await TerminalsModel.AddTerminal(windowsTerminal, "Microsoft.WindowsTerminal_8wekyb3d8bbwe"); |
| 333 | + bool isFluentTerminalAddedOrRemoved = await TerminalsModel.AddTerminal(fluentTerminal, "53621FSApps.FluentTerminal_87x1pks76srcp"); |
| 334 | + if (isWindowsTerminalAddedOrRemoved || isFluentTerminalAddedOrRemoved) |
| 335 | + { |
| 336 | + await FileIO.WriteTextAsync(TerminalsModelFile, JsonConvert.SerializeObject(TerminalsModel, Formatting.Indented)); |
368 | 337 | } |
369 | 338 | } |
370 | 339 |
|
|
0 commit comments