making copy security compliant.

This commit is contained in:
Kevin G Christiano 2020-02-19 10:47:19 -05:00
parent 4f5e3c4286
commit e457dddb98
3 changed files with 19 additions and 7 deletions

View File

@ -156,7 +156,7 @@ NSString * const KeyActionTypeOpen = @"openPage";
NSString *shareType = [actionInformation stringForKey:KeyShareType]; NSString *shareType = [actionInformation stringForKey:KeyShareType];
NSString *shareText = [actionInformation stringForKey:KeyShareText]; NSString *shareText = [actionInformation stringForKey:KeyShareText];
NSArray* shareData; NSArray *shareData;
if ([shareType isEqualToString:@"text"]) { if ([shareType isEqualToString:@"text"]) {
shareData = @[shareText]; shareData = @[shareText];
@ -174,11 +174,18 @@ NSString * const KeyActionTypeOpen = @"openPage";
if (shareData.count > 0) { if (shareData.count > 0) {
[MVMCoreDispatchUtility performBlockOnMainThread:^{ [MVMCoreDispatchUtility performBlockOnMainThread:^{
UIActivityViewController* activityViewController = [[UIActivityViewController alloc] initWithActivityItems:shareData applicationActivities:nil]; UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:shareData applicationActivities:nil];
activityViewController.excludedActivityTypes = @[UIActivityTypeAirDrop];
if (activityViewController == nil) { if (activityViewController == nil) {
return; 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; activityViewController.popoverPresentationController.sourceView = [MVMCoreNavigationHandler sharedNavigationHandler].viewControllerToPresentOn.view;
[[MVMCoreNavigationHandler sharedNavigationHandler] presentViewController:activityViewController animated:YES]; [[MVMCoreNavigationHandler sharedNavigationHandler] presentViewController:activityViewController animated:YES];
}]; }];

View File

@ -9,19 +9,24 @@
import UIKit import UIKit
class ActionShareModel: ActionModelProtocol { class ActionShareModel: ActionModelProtocol {
//--------------------------------------------------
// MARK: - Properties
//--------------------------------------------------
public static var identifier: String = "share" public static var identifier: String = "share"
public var actionType: String? public var actionType: String?
public var title: String? public var title: String?
public var pageType: String
public var shareType: String public var shareType: String
public var shareText: String public var shareText: String
public var extraParameters: JSONValueDictionary? public var extraParameters: JSONValueDictionary?
public var analyticsData: 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.shareType = shareType
self.shareText = shareText self.shareText = shareText
} }

View File

@ -48,7 +48,7 @@
} }
-(void)copyStringToClipboard :(nullable NSString *)clipboardString { -(void)copyStringToClipboard:(nullable NSString *)clipboardString {
self.clipboardString = clipboardString; self.clipboardString = clipboardString;
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
pasteboard.string = clipboardString; pasteboard.string = clipboardString;