From e457dddb98b4318e5b75d3552992bb8b4bd83f66 Mon Sep 17 00:00:00 2001 From: Kevin G Christiano Date: Wed, 19 Feb 2020 10:47:19 -0500 Subject: [PATCH] making copy security compliant. --- .../MVMCore/ActionHandling/MVMCoreActionHandler.m | 13 ++++++++++--- .../Models/ActionType/ActionShareModel.swift | 11 ++++++++--- MVMCore/MVMCore/Session/MVMCoreSessionObject.m | 2 +- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/MVMCore/MVMCore/ActionHandling/MVMCoreActionHandler.m b/MVMCore/MVMCore/ActionHandling/MVMCoreActionHandler.m index d1440fb..0fd62a3 100644 --- a/MVMCore/MVMCore/ActionHandling/MVMCoreActionHandler.m +++ b/MVMCore/MVMCore/ActionHandling/MVMCoreActionHandler.m @@ -156,7 +156,7 @@ NSString * const KeyActionTypeOpen = @"openPage"; NSString *shareType = [actionInformation stringForKey:KeyShareType]; NSString *shareText = [actionInformation stringForKey:KeyShareText]; - NSArray* shareData; + NSArray *shareData; if ([shareType isEqualToString:@"text"]) { shareData = @[shareText]; @@ -174,11 +174,18 @@ NSString * const KeyActionTypeOpen = @"openPage"; if (shareData.count > 0) { [MVMCoreDispatchUtility performBlockOnMainThread:^{ - UIActivityViewController* activityViewController = [[UIActivityViewController alloc] initWithActivityItems:shareData applicationActivities:nil]; - activityViewController.excludedActivityTypes = @[UIActivityTypeAirDrop]; + UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:shareData applicationActivities:nil]; if (activityViewController == nil) { return; } + + void(^activityCompletion)(UIActivityType activityType, BOOL completed, NSArray *returnedItems, NSError *activityError) = ^(UIActivityType activityType, BOOL completed, NSArray *returnedItems, NSError *activityError) { + if (activityType == UIActivityTypeCopyToPasteboard) { + [[MVMCoreSessionObject sharedGlobal] copyStringToClipboard:shareText]; + } + }; + + activityViewController.completionWithItemsHandler = activityCompletion; activityViewController.popoverPresentationController.sourceView = [MVMCoreNavigationHandler sharedNavigationHandler].viewControllerToPresentOn.view; [[MVMCoreNavigationHandler sharedNavigationHandler] presentViewController:activityViewController animated:YES]; }]; diff --git a/MVMCore/MVMCore/Models/ActionType/ActionShareModel.swift b/MVMCore/MVMCore/Models/ActionType/ActionShareModel.swift index a9bee03..44cd06e 100644 --- a/MVMCore/MVMCore/Models/ActionType/ActionShareModel.swift +++ b/MVMCore/MVMCore/Models/ActionType/ActionShareModel.swift @@ -9,19 +9,24 @@ import UIKit class ActionShareModel: ActionModelProtocol { + //-------------------------------------------------- + // MARK: - Properties + //-------------------------------------------------- public static var identifier: String = "share" public var actionType: String? public var title: String? - public var pageType: String public var shareType: String public var shareText: String public var extraParameters: JSONValueDictionary? public var analyticsData: JSONValueDictionary? - public init(pageType: String,shareText: String,shareType: String) { - self.pageType = pageType + //-------------------------------------------------- + // MARK: - Initializer + //-------------------------------------------------- + + public init(shareText: String,shareType: String) { self.shareType = shareType self.shareText = shareText } diff --git a/MVMCore/MVMCore/Session/MVMCoreSessionObject.m b/MVMCore/MVMCore/Session/MVMCoreSessionObject.m index eea367f..7134c59 100644 --- a/MVMCore/MVMCore/Session/MVMCoreSessionObject.m +++ b/MVMCore/MVMCore/Session/MVMCoreSessionObject.m @@ -48,7 +48,7 @@ } --(void)copyStringToClipboard :(nullable NSString *)clipboardString { +-(void)copyStringToClipboard:(nullable NSString *)clipboardString { self.clipboardString = clipboardString; UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; pasteboard.string = clipboardString;