Skip to content

Commit 7348fc6

Browse files
committed
fix(Avalonia): uploads being prefixed with Uri semantics
1 parent 1772da5 commit 7348fc6

2 files changed

Lines changed: 33 additions & 10 deletions

File tree

SnapX.Avalonia/Views/MainWindow.axaml.cs

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -64,22 +64,44 @@ public void ListenForEvents()
6464
}
6565
private async void HandleFileSelectionRequested(NeedFileOpenerEvent @event)
6666
{
67-
var topLevel = TopLevel.GetTopLevel(this);
68-
var files = await topLevel.StorageProvider.OpenFilePickerAsync(new FilePickerOpenOptions
67+
var topLevel = GetTopLevel(this);
68+
IEnumerable<IStorageItem> items;
69+
70+
if (@event.FolderPicker)
71+
{
72+
items = await topLevel.StorageProvider.OpenFolderPickerAsync(new FolderPickerOpenOptions
73+
{
74+
Title = @event.Title,
75+
SuggestedStartLocation = await StorageProvider.TryGetFolderFromPathAsync(@event.Directory),
76+
AllowMultiple = @event.Multiselect,
77+
SuggestedFileName = @event.FileName,
78+
});
79+
}
80+
else
6981
{
70-
Title = @event.Title,
71-
AllowMultiple = @event.Multiselect,
72-
SuggestedFileName = @event.FileName,
73-
SuggestedStartLocation = await StorageProvider.TryGetFolderFromPathAsync(@event.Directory)
74-
});
82+
items = await topLevel.StorageProvider.OpenFilePickerAsync(new FilePickerOpenOptions
83+
{
84+
Title = @event.Title,
85+
AllowMultiple = @event.Multiselect,
86+
SuggestedFileName = @event.FileName,
87+
SuggestedStartLocation = await StorageProvider.TryGetFolderFromPathAsync(@event.Directory),
88+
});
89+
}
7590

76-
if (files.Count > 0)
91+
if (items.Any())
7792
{
78-
string?[] filePaths = files.Select(f => f.Path.ToString()).ToArray();
79-
UploadManager.UploadFile(filePaths, @event.TaskSettings);
93+
var itemPaths = items.Select(item => item.Path.LocalPath).ToArray();
94+
var itemPathsAsString = string.Join(", ", itemPaths);
95+
DebugHelper.WriteLine(itemPathsAsString);
96+
UploadManager.UploadFile(itemPaths, @event.TaskSettings);
97+
}
98+
else
99+
{
100+
DebugHelper.WriteLine("Got no files/folders back!");
80101
}
81102
}
82103

104+
83105
// Event handler for the button click
84106
private void OnDemoTestButtonClick(object sender, RoutedEventArgs e)
85107
{

SnapX.Core/Events.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ public class NeedFileOpenerEvent
1010
public List<string>? AcceptedExtensions { get; set; }
1111
public string? Title { get; set; } = SnapX.AppName;
1212
public bool Multiselect { get; set; } = false;
13+
public bool FolderPicker { get; set; }
1314
public TaskSettings TaskSettings { get; set; }
1415
}
1516

0 commit comments

Comments
 (0)