Skip to content

Commit 7a937fc

Browse files
committed
Improve refresh logic
1 parent ab27dc3 commit 7a937fc

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

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

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ internal sealed class CreateAlternateDataStreamAction : BaseUIAction, IAction
1111
{
1212
private readonly IContentPageContext context;
1313

14+
private static readonly IFoldersSettingsService FoldersSettingsService = Ioc.Default.GetRequiredService<IFoldersSettingsService>();
15+
1416
public string Label
1517
=> "CreateAlternateDataStream".GetLocalizedResource();
1618

@@ -72,8 +74,31 @@ await Task.WhenAll(context.SelectedItems.Select(async selectedItem =>
7274
Win32Helper.SetFileDateModified(selectedItem.ItemPath, dateModified);
7375
}));
7476

75-
if (context.ShellPage is not null)
77+
if (context.ShellPage is null)
78+
return;
79+
80+
if (FoldersSettingsService.AreAlternateStreamsVisible)
7681
await context.ShellPage.Refresh_Click();
82+
else
83+
{
84+
var dialog = new ContentDialog
85+
{
86+
Title = Strings.DataStreamsAreHiddenTitle.GetLocalizedResource(),
87+
Content = Strings.DataStreamsAreHiddenDescription.GetLocalizedResource(),
88+
PrimaryButtonText = Strings.Yes.GetLocalizedResource(),
89+
SecondaryButtonText = Strings.No.GetLocalizedResource()
90+
};
91+
92+
if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 8))
93+
dialog.XamlRoot = MainWindow.Instance.Content.XamlRoot;
94+
95+
var result = await dialog.TryShowAsync();
96+
if (result == ContentDialogResult.Primary)
97+
{
98+
FoldersSettingsService.AreAlternateStreamsVisible = true;
99+
await context.ShellPage.Refresh_Click();
100+
}
101+
}
77102
}
78103

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

src/Files.App/Strings/en-US/Resources.resw

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3989,4 +3989,10 @@
39893989
<data name="ErrorCreatingDataStreamDescription" xml:space="preserve">
39903990
<value>Please note that alternate data streams only work on drives formatted as NTFS.</value>
39913991
</data>
3992+
<data name="DataStreamsAreHiddenTitle" xml:space="preserve">
3993+
<value>Alternate data streams are currently hidden</value>
3994+
</data>
3995+
<data name="DataStreamsAreHiddenDescription" xml:space="preserve">
3996+
<value>Would you like to display alternate data streams? You can modify this setting anytime from the files and folders settings page.</value>
3997+
</data>
39923998
</root>

0 commit comments

Comments
 (0)