@@ -8,8 +8,9 @@ namespace Xamarin.Essentials
8
8
{
9
9
public static partial class Share
10
10
{
11
- static Task PlatformRequestAsync ( ShareTextRequest request )
11
+ static async Task PlatformRequestAsync ( ShareTextRequest request )
12
12
{
13
+ var src = new TaskCompletionSource < bool > ( ) ;
13
14
var items = new List < NSObject > ( ) ;
14
15
if ( ! string . IsNullOrWhiteSpace ( request . Text ) )
15
16
{
@@ -21,7 +22,13 @@ static Task PlatformRequestAsync(ShareTextRequest request)
21
22
items . Add ( new ShareActivityItemSource ( NSUrl . FromString ( request . Uri ) , request . Title ) ) ;
22
23
}
23
24
24
- var activityController = new UIActivityViewController ( items . ToArray ( ) , null ) ;
25
+ var activityController = new UIActivityViewController ( items . ToArray ( ) , null )
26
+ {
27
+ CompletionWithItemsHandler = ( a , b , c , d ) =>
28
+ {
29
+ src . TrySetResult ( true ) ;
30
+ }
31
+ } ;
25
32
26
33
var vc = Platform . GetCurrentViewController ( ) ;
27
34
@@ -33,11 +40,14 @@ static Task PlatformRequestAsync(ShareTextRequest request)
33
40
activityController . PopoverPresentationController . SourceRect = request . PresentationSourceBounds . ToPlatformRectangle ( ) ;
34
41
}
35
42
36
- return vc . PresentViewControllerAsync ( activityController , true ) ;
43
+ await vc . PresentViewControllerAsync ( activityController , true ) ;
44
+ await src . Task ;
37
45
}
38
46
39
- static Task PlatformRequestAsync ( ShareMultipleFilesRequest request )
47
+ static async Task PlatformRequestAsync ( ShareMultipleFilesRequest request )
40
48
{
49
+ var src = new TaskCompletionSource < bool > ( ) ;
50
+
41
51
var items = new List < NSObject > ( ) ;
42
52
43
53
var hasTitel = ! string . IsNullOrWhiteSpace ( request . Title ) ;
@@ -50,7 +60,13 @@ static Task PlatformRequestAsync(ShareMultipleFilesRequest request)
50
60
items . Add ( fileUrl ) ; // No title specified
51
61
}
52
62
53
- var activityController = new UIActivityViewController ( items . ToArray ( ) , null ) ;
63
+ var activityController = new UIActivityViewController ( items . ToArray ( ) , null )
64
+ {
65
+ CompletionWithItemsHandler = ( a , b , c , d ) =>
66
+ {
67
+ src . TrySetResult ( true ) ;
68
+ }
69
+ } ;
54
70
55
71
var vc = Platform . GetCurrentViewController ( ) ;
56
72
@@ -62,7 +78,8 @@ static Task PlatformRequestAsync(ShareMultipleFilesRequest request)
62
78
activityController . PopoverPresentationController . SourceRect = request . PresentationSourceBounds . ToPlatformRectangle ( ) ;
63
79
}
64
80
65
- return vc . PresentViewControllerAsync ( activityController , true ) ;
81
+ await vc . PresentViewControllerAsync ( activityController , true ) ;
82
+ await src . Task ;
66
83
}
67
84
}
68
85
0 commit comments