Adding appdelegate ivar to control whether activity view is showing. Needed for handling links tapped in story detail.

This commit is contained in:
Samuel Clay 2014-10-30 17:26:34 -07:00
parent 68078df74e
commit 6c134a1d0e
3 changed files with 10 additions and 5 deletions

View file

@ -194,6 +194,7 @@
@property (nonatomic, readwrite) BOOL popoverHasFeedView; @property (nonatomic, readwrite) BOOL popoverHasFeedView;
@property (nonatomic, readwrite) BOOL inFeedDetail; @property (nonatomic, readwrite) BOOL inFeedDetail;
@property (nonatomic, readwrite) BOOL inStoryDetail; @property (nonatomic, readwrite) BOOL inStoryDetail;
@property (nonatomic, readwrite) BOOL isPresentingActivities;
@property (readwrite) NSDictionary * activeStory; @property (readwrite) NSDictionary * activeStory;
@property (readwrite) NSURL * activeOriginalStoryURL; @property (readwrite) NSURL * activeOriginalStoryURL;
@property (readwrite) NSDictionary * activeComment; @property (readwrite) NSDictionary * activeComment;

View file

@ -115,6 +115,7 @@
@synthesize popoverHasFeedView; @synthesize popoverHasFeedView;
@synthesize inFeedDetail; @synthesize inFeedDetail;
@synthesize inStoryDetail; @synthesize inStoryDetail;
@synthesize isPresentingActivities;
@synthesize activeComment; @synthesize activeComment;
@synthesize activeShareType; @synthesize activeShareType;
@ -581,6 +582,7 @@
OSKActivityCompletionHandler completionHandler = ^(OSKActivity *activity, BOOL successful, NSError *error){ OSKActivityCompletionHandler completionHandler = ^(OSKActivity *activity, BOOL successful, NSError *error){
self.isPresentingActivities = NO;
if (!successful) return; if (!successful) return;
NSString *activityType = [activity.class activityType]; NSString *activityType = [activity.class activityType];
@ -664,6 +666,8 @@
applicationActivities:appActivities]; applicationActivities:appActivities];
[activityViewController setTitle:title]; [activityViewController setTitle:title];
void (^completion)(NSString *, BOOL) = ^void(NSString *activityType, BOOL completed){ void (^completion)(NSString *, BOOL) = ^void(NSString *activityType, BOOL completed){
self.isPresentingActivities = NO;
NSString *_completedString; NSString *_completedString;
NSLog(@"activityType: %@", activityType); NSLog(@"activityType: %@", activityType);
if (!activityType) return; if (!activityType) return;
@ -726,7 +730,8 @@
} else { } else {
[self.navigationController presentViewController:activityViewController animated:YES completion:nil]; [self.navigationController presentViewController:activityViewController animated:YES completion:nil];
} }
} }
self.isPresentingActivities = YES;
} }
- (OSKApplicationCredential *)applicationCredentialForActivityType:(NSString *)activityType { - (OSKApplicationCredential *)applicationCredentialForActivityType:(NSString *)activityType {

View file

@ -1195,9 +1195,8 @@ shouldStartLoadWithRequest:(NSURLRequest *)request
} }
if (navigationType == UIWebViewNavigationTypeLinkClicked) { if (navigationType == UIWebViewNavigationTypeLinkClicked) {
// NSLog(@"Link clicked, views: %@", [UIViewController // NSLog(@"Link clicked, views: %@ = %@", appDelegate.navigationController.topViewController, appDelegate.masterContainerViewController.childViewControllers);
// osk_parentMostViewControllerForPresentingViewController: if (appDelegate.isPresentingActivities) return NO;
// appDelegate.storyPageControl].view.subviews);
NSArray *subviews; NSArray *subviews;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
subviews = [UIViewController subviews = [UIViewController
@ -1209,7 +1208,7 @@ shouldStartLoadWithRequest:(NSURLRequest *)request
appDelegate.storyPageControl].view.subviews; appDelegate.storyPageControl].view.subviews;
} }
for (UIView *view in subviews) { for (UIView *view in subviews) {
// NSLog(@" View? %@ - %@", view, [view firstAvailableUIViewController]); // NSLog(@" View? %@ - %d - %@", view, [view isFirstResponder], [view firstAvailableUIViewController]);
if ([[view firstAvailableUIViewController] if ([[view firstAvailableUIViewController]
isKindOfClass:[OSKActivitySheetViewController class]]) { isKindOfClass:[OSKActivitySheetViewController class]]) {
return NO; return NO;