From 6c134a1d0e18aab46bd1ee3deb01800ff495fa6c Mon Sep 17 00:00:00 2001 From: Samuel Clay Date: Thu, 30 Oct 2014 17:26:34 -0700 Subject: [PATCH] Adding appdelegate ivar to control whether activity view is showing. Needed for handling links tapped in story detail. --- clients/ios/Classes/NewsBlurAppDelegate.h | 1 + clients/ios/Classes/NewsBlurAppDelegate.m | 7 ++++++- clients/ios/Classes/StoryDetailViewController.m | 7 +++---- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/clients/ios/Classes/NewsBlurAppDelegate.h b/clients/ios/Classes/NewsBlurAppDelegate.h index 5ba268be9..89645e724 100644 --- a/clients/ios/Classes/NewsBlurAppDelegate.h +++ b/clients/ios/Classes/NewsBlurAppDelegate.h @@ -194,6 +194,7 @@ @property (nonatomic, readwrite) BOOL popoverHasFeedView; @property (nonatomic, readwrite) BOOL inFeedDetail; @property (nonatomic, readwrite) BOOL inStoryDetail; +@property (nonatomic, readwrite) BOOL isPresentingActivities; @property (readwrite) NSDictionary * activeStory; @property (readwrite) NSURL * activeOriginalStoryURL; @property (readwrite) NSDictionary * activeComment; diff --git a/clients/ios/Classes/NewsBlurAppDelegate.m b/clients/ios/Classes/NewsBlurAppDelegate.m index f1e30f40d..cbfe50214 100644 --- a/clients/ios/Classes/NewsBlurAppDelegate.m +++ b/clients/ios/Classes/NewsBlurAppDelegate.m @@ -115,6 +115,7 @@ @synthesize popoverHasFeedView; @synthesize inFeedDetail; @synthesize inStoryDetail; +@synthesize isPresentingActivities; @synthesize activeComment; @synthesize activeShareType; @@ -581,6 +582,7 @@ OSKActivityCompletionHandler completionHandler = ^(OSKActivity *activity, BOOL successful, NSError *error){ + self.isPresentingActivities = NO; if (!successful) return; NSString *activityType = [activity.class activityType]; @@ -664,6 +666,8 @@ applicationActivities:appActivities]; [activityViewController setTitle:title]; void (^completion)(NSString *, BOOL) = ^void(NSString *activityType, BOOL completed){ + self.isPresentingActivities = NO; + NSString *_completedString; NSLog(@"activityType: %@", activityType); if (!activityType) return; @@ -726,7 +730,8 @@ } else { [self.navigationController presentViewController:activityViewController animated:YES completion:nil]; } - } + } + self.isPresentingActivities = YES; } - (OSKApplicationCredential *)applicationCredentialForActivityType:(NSString *)activityType { diff --git a/clients/ios/Classes/StoryDetailViewController.m b/clients/ios/Classes/StoryDetailViewController.m index ed0537e4c..107a4581f 100644 --- a/clients/ios/Classes/StoryDetailViewController.m +++ b/clients/ios/Classes/StoryDetailViewController.m @@ -1195,9 +1195,8 @@ shouldStartLoadWithRequest:(NSURLRequest *)request } if (navigationType == UIWebViewNavigationTypeLinkClicked) { -// NSLog(@"Link clicked, views: %@", [UIViewController -// osk_parentMostViewControllerForPresentingViewController: -// appDelegate.storyPageControl].view.subviews); +// NSLog(@"Link clicked, views: %@ = %@", appDelegate.navigationController.topViewController, appDelegate.masterContainerViewController.childViewControllers); + if (appDelegate.isPresentingActivities) return NO; NSArray *subviews; if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { subviews = [UIViewController @@ -1209,7 +1208,7 @@ shouldStartLoadWithRequest:(NSURLRequest *)request appDelegate.storyPageControl].view.subviews; } for (UIView *view in subviews) { -// NSLog(@" View? %@ - %@", view, [view firstAvailableUIViewController]); +// NSLog(@" View? %@ - %d - %@", view, [view isFirstResponder], [view firstAvailableUIViewController]); if ([[view firstAvailableUIViewController] isKindOfClass:[OSKActivitySheetViewController class]]) { return NO;