Skip to content

Commit 35b7710

Browse files
StanleyCocosvbuberen
authored andcommitted
fix: unable to get the correct result
1 parent 24363e2 commit 35b7710

File tree

1 file changed

+10
-51
lines changed

1 file changed

+10
-51
lines changed

packages/share_plus/share_plus/ios/share_plus/Sources/share_plus/FPPSharePlusPlugin.m

Lines changed: 10 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -102,48 +102,6 @@ static void initializeActivityTypeMapping(void) {
102102
return [result copy];
103103
}
104104

105-
// We need the companion to avoid ARC deadlock
106-
@interface UIActivityViewSuccessCompanion : NSObject
107-
108-
@property FlutterResult result;
109-
@property NSString *activityType;
110-
@property BOOL completed;
111-
112-
- (id)initWithResult:(FlutterResult)result;
113-
114-
@end
115-
116-
@implementation UIActivityViewSuccessCompanion
117-
118-
- (id)initWithResult:(FlutterResult)result {
119-
if (self = [super init]) {
120-
self.result = result;
121-
self.completed = false;
122-
}
123-
return self;
124-
}
125-
126-
// We use dealloc as the share-sheet might disappear (e.g. iCloud photo album
127-
// creation) and could then reappear if the user cancels
128-
- (void)dealloc {
129-
if (self.completed) {
130-
self.result(self.activityType);
131-
} else {
132-
self.result(@"");
133-
}
134-
}
135-
136-
@end
137-
138-
@interface UIActivityViewSuccessController : UIActivityViewController
139-
140-
@property UIActivityViewSuccessCompanion *companion;
141-
142-
@end
143-
144-
@implementation UIActivityViewSuccessController
145-
@end
146-
147105
@interface SharePlusData : NSObject <UIActivityItemSource>
148106

149107
@property(readonly, nonatomic, copy) NSString *subject;
@@ -317,7 +275,8 @@ + (void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar> *)registrar {
317275
NSNumber *originY = arguments[@"originY"];
318276
NSNumber *originWidth = arguments[@"originWidth"];
319277
NSNumber *originHeight = arguments[@"originHeight"];
320-
NSArray *excludedActivityTypeStrings = arguments[@"excludedCupertinoActivities"];
278+
NSArray *excludedActivityTypeStrings =
279+
arguments[@"excludedCupertinoActivities"];
321280
NSArray<UIActivityType> *excludedActivityTypes =
322281
activityTypesForStrings(excludedActivityTypeStrings);
323282

@@ -445,9 +404,9 @@ + (void)share:(NSArray *)shareItems
445404
withController:(UIViewController *)controller
446405
atSource:(CGRect)origin
447406
toResult:(FlutterResult)result {
448-
UIActivityViewSuccessController *activityViewController =
449-
[[UIActivityViewSuccessController alloc] initWithActivityItems:shareItems
450-
applicationActivities:nil];
407+
UIActivityViewController *activityViewController =
408+
[[UIActivityViewController alloc] initWithActivityItems:shareItems
409+
applicationActivities:nil];
451410

452411
activityViewController.excludedActivityTypes = excludedActivityTypes;
453412

@@ -483,14 +442,14 @@ + (void)share:(NSArray *)shareItems
483442
activityViewController.popoverPresentationController.sourceRect = origin;
484443
}
485444

486-
UIActivityViewSuccessCompanion *companion =
487-
[[UIActivityViewSuccessCompanion alloc] initWithResult:result];
488-
activityViewController.companion = companion;
489445
activityViewController.completionWithItemsHandler =
490446
^(UIActivityType activityType, BOOL completed, NSArray *returnedItems,
491447
NSError *activityError) {
492-
companion.activityType = activityType;
493-
companion.completed = completed;
448+
if (completed) {
449+
result(activityType);
450+
} else {
451+
result(@"");
452+
}
494453
};
495454

496455
[controller presentViewController:activityViewController

0 commit comments

Comments
 (0)