From 7c77a334d69a2c1b8c1c73061651ad5a3fdde481 Mon Sep 17 00:00:00 2001 From: Samuel Clay Date: Mon, 6 Jan 2014 19:53:37 -0800 Subject: [PATCH] Fixing Chrome overshare to include callback. --- clients/ios/Classes/NewsBlurAppDelegate.m | 4 +++- .../ios/NewsBlur.xcodeproj/project.pbxproj | 4 ++-- .../Overshare Kit/OSKChromeActivity.m | 20 +++++++++++++------ 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/clients/ios/Classes/NewsBlurAppDelegate.m b/clients/ios/Classes/NewsBlurAppDelegate.m index bd655a6f5..a691da601 100644 --- a/clients/ios/Classes/NewsBlurAppDelegate.m +++ b/clients/ios/Classes/NewsBlurAppDelegate.m @@ -518,7 +518,7 @@ content.title = [NSString stringWithFormat:@"%@", title]; OSKMicroblogPostContentItem *microblogPost = [[OSKMicroblogPostContentItem alloc] init]; - microblogPost.text = [NSString stringWithFormat:@"“%@” (Via %@) %@ ", text, authorName, [url absoluteString]]; + microblogPost.text = [NSString stringWithFormat:@"%@ %@", title, [url absoluteString]]; microblogPost.images = [activeStory objectForKey:@"story_images"];; content.microblogPostItem = microblogPost; @@ -624,6 +624,8 @@ _completedString = @"Saved to Readability"; } else if ([activityType isEqualToString:OSKActivityType_API_Pinboard]) { _completedString = @"Saved to Pinboard"; + } else if ([activityType isEqualToString:OSKActivityType_iOS_AirDrop]) { + _completedString = @"Airdropped"; } else if ([activityType isEqualToString:OSKActivityType_iOS_Safari]) { return; } else if ([activityType isEqualToString:OSKActivityType_URLScheme_Chrome]) { diff --git a/clients/ios/NewsBlur.xcodeproj/project.pbxproj b/clients/ios/NewsBlur.xcodeproj/project.pbxproj index d6c782df7..05cec1922 100755 --- a/clients/ios/NewsBlur.xcodeproj/project.pbxproj +++ b/clients/ios/NewsBlur.xcodeproj/project.pbxproj @@ -3303,7 +3303,7 @@ "-all_load", ); PRODUCT_NAME = NewsBlur; - PROVISIONING_PROFILE = "954389F4-8E6B-4312-9C44-7DCD5EAD40A5"; + PROVISIONING_PROFILE = ""; TARGETED_DEVICE_FAMILY = "1,2"; "WARNING_CFLAGS[arch=*]" = "-Wall"; }; @@ -3336,7 +3336,7 @@ "-all_load", ); PRODUCT_NAME = NewsBlur; - PROVISIONING_PROFILE = "954389F4-8E6B-4312-9C44-7DCD5EAD40A5"; + PROVISIONING_PROFILE = ""; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; diff --git a/clients/ios/Other Sources/Overshare Kit/OSKChromeActivity.m b/clients/ios/Other Sources/Overshare Kit/OSKChromeActivity.m index 3916f804d..3d065d852 100644 --- a/clients/ios/Other Sources/Overshare Kit/OSKChromeActivity.m +++ b/clients/ios/Other Sources/Overshare Kit/OSKChromeActivity.m @@ -108,6 +108,15 @@ static NSString * kGoogleChromeHTTPSScheme = @"googlechromes:"; return ([(OSKWebBrowserContentItem *)self.contentItem url] != nil); } +- (NSString *)encodeByAddingPercentEscapes:(NSString *)input { + return (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes( + kCFAllocatorDefault, + (CFStringRef)input, + NULL, + (CFStringRef)@"!*'();:@&=+$,/?%#[]", + kCFStringEncodingUTF8)); +} + - (void)performActivity:(OSKActivityCompletionHandler)completion { NSURL *url = [[self browserItem] url]; NSString *scheme = [url.scheme lowercaseString]; @@ -122,12 +131,11 @@ static NSString * kGoogleChromeHTTPSScheme = @"googlechromes:"; // Proceed only if a valid Google Chrome URI Scheme is available. if (chromeScheme) { - NSString *absoluteString = [url absoluteString]; - NSRange rangeForScheme = [absoluteString rangeOfString:@":"]; - NSString *urlNoScheme = - [absoluteString substringFromIndex:rangeForScheme.location + 1]; - NSString *chromeURLString = - [chromeScheme stringByAppendingString:urlNoScheme]; + NSString *chromeURLString = [NSString stringWithFormat:@"googlechrome-x-callback://x-callback-url/open/?x-source=%@&x-success=%@&url=%@", + @"NewsBlur", + [self encodeByAddingPercentEscapes:@"newsblur://"], + [self encodeByAddingPercentEscapes:[url absoluteString]]]; + NSURL *chromeURL = [NSURL URLWithString:chromeURLString]; // Open the URL with Google Chrome.