Skip to content

Commit 1216345

Browse files
bhavanesh2001PureWeen
authored andcommitted
Set result to tcs when user cancels (#29498)
1 parent 0021fcb commit 1216345

1 file changed

Lines changed: 21 additions & 1 deletion

File tree

src/Essentials/src/FilePicker/FilePicker.ios.cs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,27 @@ async Task<IEnumerable<FileResult>> PlatformPickAsync(PickOptions options, bool
3535

3636
if (OperatingSystem.IsIOSVersionAtLeast(11) || OperatingSystem.IsMacCatalystVersionAtLeast(13, 1))
3737
{
38-
documentPicker.DidPickDocumentAtUrls += (_, e) => GetFileResults(e.Urls, tcs);
38+
EventHandler<UIDocumentPickedAtUrlsEventArgs> pickHandler = null;
39+
EventHandler cancelHandler = null;
40+
41+
pickHandler = (_, e) =>
42+
{
43+
documentPicker.DidPickDocumentAtUrls -= pickHandler;
44+
documentPicker.WasCancelled -= cancelHandler;
45+
46+
GetFileResults(e.Urls, tcs);
47+
};
48+
49+
cancelHandler = (_, e) =>
50+
{
51+
documentPicker.DidPickDocumentAtUrls -= pickHandler;
52+
documentPicker.WasCancelled -= cancelHandler;
53+
54+
GetFileResults(null, tcs);
55+
};
56+
57+
documentPicker.DidPickDocumentAtUrls += pickHandler;
58+
documentPicker.WasCancelled += cancelHandler;
3959
}
4060
else
4161
{

0 commit comments

Comments
 (0)