Skip to content

Commit c440e68

Browse files
authored
Code Quality: Use OpenItem action for better reliability (#13831)
1 parent 67b86b5 commit c440e68

File tree

6 files changed

+23
-17
lines changed

6 files changed

+23
-17
lines changed

src/Files.App/Actions/FileSystem/OpenItemAction.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,10 @@ public OpenItemAction()
3939

4040
public Task ExecuteAsync()
4141
{
42-
return NavigationHelpers.OpenSelectedItemsAsync(context.ShellPage);
42+
if (context.ShellPage is not null)
43+
return NavigationHelpers.OpenSelectedItemsAsync(context.ShellPage);
44+
45+
return Task.CompletedTask;
4346
}
4447

4548
private void Context_PropertyChanged(object? sender, PropertyChangedEventArgs e)

src/Files.App/Views/LayoutModes/BaseLayout.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ public abstract class BaseLayout : Page, IBaseLayout, INotifyPropertyChanged
4141

4242
protected IFileTagsSettingsService FileTagsSettingsService { get; } = Ioc.Default.GetService<IFileTagsSettingsService>()!;
4343

44+
public ICommandManager Commands { get; } = Ioc.Default.GetRequiredService<ICommandManager>();
45+
4446
public SelectedItemsPropertiesViewModel SelectedItemsPropertiesViewModel { get; }
4547

4648
public FolderSettingsViewModel? FolderSettings
@@ -1084,7 +1086,7 @@ private async void Item_DragOver(object sender, DragEventArgs e)
10841086
dragOverTimer.Stop();
10851087
ItemManipulationModel.SetSelectedItem(dragOverItem);
10861088
dragOverItem = null;
1087-
_ = NavigationHelpers.OpenSelectedItemsAsync(ParentShellPageInstance!, false);
1089+
Commands.OpenItem.ExecuteAsync();
10881090
}
10891091
},
10901092
TimeSpan.FromMilliseconds(1000), false);

src/Files.App/Views/LayoutModes/ColumnViewBase.xaml.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,7 @@ ParentShellPageInstance is null ||
346346
}
347347
}
348348

349-
private void FileList_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
349+
private async void FileList_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
350350
{
351351
doubleClickTimer.Stop();
352352

@@ -358,21 +358,21 @@ private void FileList_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
358358
{
359359
case StorageItemTypes.File:
360360
if (!UserSettingsService.FoldersSettingsService.OpenItemsWithOneClick)
361-
_ = NavigationHelpers.OpenSelectedItemsAsync(ParentShellPageInstance, false);
361+
await Commands.OpenItem.ExecuteAsync();
362362
break;
363363
case StorageItemTypes.Folder:
364364
if (!UserSettingsService.FoldersSettingsService.ColumnLayoutOpenFoldersWithOneClick)
365365
ItemInvoked?.Invoke(new ColumnParam { Source = this, NavPathParam = (item is ShortcutItem sht ? sht.TargetPath : item.ItemPath), ListView = FileList }, EventArgs.Empty);
366366
break;
367367
default:
368368
if (UserSettingsService.FoldersSettingsService.DoubleClickToGoUp)
369-
ParentShellPageInstance?.Up_Click();
369+
await Commands.NavigateUp.ExecuteAsync();
370370
break;
371371
}
372372
}
373373
else if (UserSettingsService.FoldersSettingsService.DoubleClickToGoUp)
374374
{
375-
ParentShellPageInstance?.Up_Click();
375+
await Commands.NavigateUp.ExecuteAsync();
376376
}
377377

378378
ResetRenameDoubleClick();
@@ -408,7 +408,7 @@ private async void FileList_ItemTapped(object sender, TappedRoutedEventArgs e)
408408
if (UserSettingsService.FoldersSettingsService.OpenItemsWithOneClick && isItemFile)
409409
{
410410
ResetRenameDoubleClick();
411-
_ = NavigationHelpers.OpenSelectedItemsAsync(ParentShellPageInstance, false);
411+
await Commands.OpenItem.ExecuteAsync();
412412
}
413413
else if (item is not null)
414414
{

src/Files.App/Views/LayoutModes/ColumnViewBrowser.xaml.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -284,12 +284,12 @@ public void NavigateForward()
284284
(ParentShellPageInstance as ModernShellPage)?.Forward_Click();
285285
}
286286

287-
public void NavigateUp()
287+
public async void NavigateUp()
288288
{
289289
if (ColumnHost.ActiveBlades?.Count > 1)
290290
DismissOtherBlades(ColumnHost.ActiveBlades[ColumnHost.ActiveBlades.Count - 2]);
291291
else
292-
(ParentShellPageInstance as ModernShellPage)?.Up_Click();
292+
await Commands.NavigateUp.ExecuteAsync();
293293
}
294294

295295
public void MoveFocusToPreviousBlade(int currentBladeIndex)

src/Files.App/Views/LayoutModes/DetailsLayoutBrowser.xaml.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// Licensed under the MIT License. See the LICENSE.
33

44
using CommunityToolkit.WinUI.UI;
5+
using Files.App.Actions;
56
using Files.App.UserControls.Selection;
67
using Microsoft.UI.Input;
78
using Microsoft.UI.Xaml;
@@ -462,7 +463,7 @@ clickedItem is Microsoft.UI.Xaml.Shapes.Rectangle
462463
if (UserSettingsService.FoldersSettingsService.OpenItemsWithOneClick)
463464
{
464465
ResetRenameDoubleClick();
465-
_ = NavigationHelpers.OpenSelectedItemsAsync(ParentShellPageInstance, false);
466+
await Commands.OpenItem.ExecuteAsync();
466467
}
467468
else
468469
{
@@ -482,17 +483,17 @@ clickedItem is Microsoft.UI.Xaml.Shapes.Rectangle
482483
}
483484
}
484485

485-
private void FileList_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
486+
private async void FileList_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
486487
{
487488
// Skip opening selected items if the double tap doesn't capture an item
488489
if ((e.OriginalSource as FrameworkElement)?.DataContext is ListedItem item
489490
&& !UserSettingsService.FoldersSettingsService.OpenItemsWithOneClick)
490491
{
491-
_ = NavigationHelpers.OpenSelectedItemsAsync(ParentShellPageInstance, false);
492+
await Commands.OpenItem.ExecuteAsync();
492493
}
493494
else if (UserSettingsService.FoldersSettingsService.DoubleClickToGoUp)
494495
{
495-
ParentShellPageInstance?.Up_Click();
496+
await Commands.NavigateUp.ExecuteAsync();
496497
}
497498
ResetRenameDoubleClick();
498499
}

src/Files.App/Views/LayoutModes/GridViewBrowser.xaml.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,7 @@ private async void FileList_ItemTapped(object sender, TappedRoutedEventArgs e)
387387
if (UserSettingsService.FoldersSettingsService.OpenItemsWithOneClick)
388388
{
389389
ResetRenameDoubleClick();
390-
_ = NavigationHelpers.OpenSelectedItemsAsync(ParentShellPageInstance, false);
390+
await Commands.OpenItem.ExecuteAsync();
391391
}
392392
else
393393
{
@@ -417,14 +417,14 @@ private async void FileList_ItemTapped(object sender, TappedRoutedEventArgs e)
417417
}
418418
}
419419

420-
private void FileList_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
420+
private async void FileList_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
421421
{
422422
// Skip opening selected items if the double tap doesn't capture an item
423423
if ((e.OriginalSource as FrameworkElement)?.DataContext is ListedItem item &&
424424
!UserSettingsService.FoldersSettingsService.OpenItemsWithOneClick)
425-
_ = NavigationHelpers.OpenSelectedItemsAsync(ParentShellPageInstance, false);
425+
await Commands.OpenItem.ExecuteAsync();
426426
else if (UserSettingsService.FoldersSettingsService.DoubleClickToGoUp)
427-
ParentShellPageInstance.Up_Click();
427+
await Commands.NavigateUp.ExecuteAsync();
428428

429429
ResetRenameDoubleClick();
430430
}

0 commit comments

Comments
 (0)