Skip to content

Commit 286c326

Browse files
committed
fix: rename parameters and refactor the conversion method.
1 parent e1279c4 commit 286c326

1 file changed

Lines changed: 27 additions & 26 deletions

File tree

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

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,21 @@ static void initializeActivityTypeMapping(void) {
8484
});
8585
}
8686

87-
static UIActivityType activityTypeForString(NSString *activityTypeString) {
88-
initializeActivityTypeMapping();
89-
if ([activityTypes.allKeys containsObject:activityTypeString]) {
90-
return activityTypes[activityTypeString];
87+
static NSArray<UIActivityType> *activityTypesForStrings(NSArray<NSString *> *activityTypeStrings) {
88+
if (activityTypeStrings == nil || activityTypeStrings.count == 0) {
89+
return nil;
9190
}
92-
return nil;
91+
initializeActivityTypeMapping();
92+
NSMutableArray<UIActivityType> *result = [NSMutableArray array];
93+
94+
for (NSString *key in activityTypeStrings) {
95+
UIActivityType mapped = activityTypes[key];
96+
if (mapped) {
97+
[result addObject:mapped];
98+
}
99+
}
100+
101+
return [result copy];
93102
}
94103

95104
// We need the companion to avoid ARC deadlock
@@ -307,7 +316,8 @@ + (void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar> *)registrar {
307316
NSNumber *originY = arguments[@"originY"];
308317
NSNumber *originWidth = arguments[@"originWidth"];
309318
NSNumber *originHeight = arguments[@"originHeight"];
310-
NSArray *excludedActivityType = arguments[@"excludedActivityType"];
319+
NSArray *excludedActivityTypeStrings = arguments[@"excludedActivityType"];
320+
NSArray<UIActivityType> *excludedActivityTypes = activityTypesForStrings(excludedActivityTypeStrings);
311321

312322
CGRect originRect = CGRectZero;
313323
if (originX && originY && originWidth && originHeight) {
@@ -396,7 +406,7 @@ + (void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar> *)registrar {
396406

397407
if (uri) {
398408
[self shareUri:uri
399-
excludedActivityType:excludedActivityType
409+
excludedActivityTypes:excludedActivityTypes
400410
withController:topViewController
401411
atSource:originRect
402412
toResult:result];
@@ -405,14 +415,14 @@ + (void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar> *)registrar {
405415
withMimeType:mimeTypes
406416
withSubject:shareTitle
407417
withText:shareText
408-
excludedActivityType:excludedActivityType
418+
excludedActivityTypes:excludedActivityTypes
409419
withController:rootViewController
410420
atSource:originRect
411421
toResult:result];
412422
} else if (shareText) {
413423
[self shareText:shareText
414424
subject:shareTitle
415-
excludedActivityType:excludedActivityType
425+
excludedActivityTypes:excludedActivityTypes
416426
withController:rootViewController
417427
atSource:originRect
418428
toResult:result];
@@ -429,24 +439,15 @@ + (void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar> *)registrar {
429439

430440
+ (void)share:(NSArray *)shareItems
431441
withSubject:(NSString *)subject
432-
excludedActivityType:(NSArray *)excludedActivityType
442+
excludedActivityTypes:(NSArray<UIActivityType> *)excludedActivityTypes
433443
withController:(UIViewController *)controller
434444
atSource:(CGRect)origin
435445
toResult:(FlutterResult)result {
436446
UIActivityViewSuccessController *activityViewController =
437447
[[UIActivityViewSuccessController alloc] initWithActivityItems:shareItems
438448
applicationActivities:nil];
439449

440-
if (excludedActivityType.count > 0) {
441-
NSMutableArray *excludedActivityTypes = [[NSMutableArray alloc] init];
442-
for (NSString *type in excludedActivityType) {
443-
UIActivityType activityType = activityTypeForString(type);
444-
if (activityType != nil) {
445-
[excludedActivityTypes addObject:activityType];
446-
}
447-
}
448-
activityViewController.excludedActivityTypes = excludedActivityTypes;
449-
}
450+
activityViewController.excludedActivityTypes = excludedActivityTypes;
450451

451452
// Force subject when sharing a raw url or files
452453
if (![subject isKindOfClass:[NSNull class]]) {
@@ -496,30 +497,30 @@ + (void)share:(NSArray *)shareItems
496497
}
497498

498499
+ (void)shareUri:(NSString *)uri
499-
excludedActivityType:(NSArray *)excludedActivityType
500+
excludedActivityTypes:(NSArray<UIActivityType> *)excludedActivityTypes
500501
withController:(UIViewController *)controller
501502
atSource:(CGRect)origin
502503
toResult:(FlutterResult)result {
503504
NSURL *data = [NSURL URLWithString:uri];
504505
[self share:@[ data ]
505506
withSubject:nil
506-
excludedActivityType:excludedActivityType
507+
excludedActivityTypes:excludedActivityTypes
507508
withController:controller
508509
atSource:origin
509510
toResult:result];
510511
}
511512

512513
+ (void)shareText:(NSString *)shareText
513514
subject:(NSString *)subject
514-
excludedActivityType:(NSArray *)excludedActivityType
515+
excludedActivityTypes:(NSArray<UIActivityType> *)excludedActivityTypes
515516
withController:(UIViewController *)controller
516517
atSource:(CGRect)origin
517518
toResult:(FlutterResult)result {
518519
NSObject *data = [[SharePlusData alloc] initWithSubject:subject
519520
text:shareText];
520521
[self share:@[ data ]
521522
withSubject:subject
522-
excludedActivityType:excludedActivityType
523+
excludedActivityTypes:excludedActivityTypes
523524
withController:controller
524525
atSource:origin
525526
toResult:result];
@@ -529,7 +530,7 @@ + (void)shareFiles:(NSArray *)paths
529530
withMimeType:(NSArray *)mimeTypes
530531
withSubject:(NSString *)subject
531532
withText:(NSString *)text
532-
excludedActivityType:(NSArray *)excludedActivityType
533+
excludedActivityTypes:(NSArray<UIActivityType> *)excludedActivityTypes
533534
withController:(UIViewController *)controller
534535
atSource:(CGRect)origin
535536
toResult:(FlutterResult)result {
@@ -549,7 +550,7 @@ + (void)shareFiles:(NSArray *)paths
549550

550551
[self share:items
551552
withSubject:subject
552-
excludedActivityType:excludedActivityType
553+
excludedActivityTypes:excludedActivityTypes
553554
withController:controller
554555
atSource:origin
555556
toResult:result];

0 commit comments

Comments
 (0)