|
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