diff --git a/media/ios/Classes/FeedDetailViewController.h b/media/ios/Classes/FeedDetailViewController.h index 6b334e72d..742f0458d 100644 --- a/media/ios/Classes/FeedDetailViewController.h +++ b/media/ios/Classes/FeedDetailViewController.h @@ -66,7 +66,7 @@ - (void)deleteSite; - (void)deleteFolder; - (void)openMoveView; -- (void)showUserProfilePopover; +- (void)showUserProfile; - (void)changeActiveFeedDetailRow; - (void)instafetchFeed; - (void)loadStory:(FeedDetailTableCell *)cell atRow:(int)row; diff --git a/media/ios/Classes/FeedDetailViewController.m b/media/ios/Classes/FeedDetailViewController.m index 784c807f6..07ec9331a 100644 --- a/media/ios/Classes/FeedDetailViewController.m +++ b/media/ios/Classes/FeedDetailViewController.m @@ -9,6 +9,7 @@ #import #import "FeedDetailViewController.h" #import "NewsBlurAppDelegate.h" +#import "NBContainerViewController.h" #import "FeedDetailTableCell.h" #import "ASIFormDataRequest.h" #import "UserProfileViewController.h" @@ -19,6 +20,7 @@ #import "StringHelper.h" #import "Utilities.h" + #define kTableViewRowHeight 65; #define kTableViewRiverRowHeight 81; #define kMarkReadActionSheet 1; @@ -85,7 +87,7 @@ // set right avatar title image if (appDelegate.isSocialView) { UIButton *titleImageButton = [appDelegate makeRightFeedTitle:appDelegate.activeFeed]; - [titleImageButton addTarget:self action:@selector(showUserProfilePopover) forControlEvents:UIControlEventTouchUpInside]; + [titleImageButton addTarget:self action:@selector(showUserProfile) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *titleImageBarButton = [[UIBarButtonItem alloc] initWithCustomView:titleImageButton]; self.navigationItem.rightBarButtonItem = titleImageBarButton; @@ -982,27 +984,10 @@ [appDelegate showMoveSite]; } -- (void)showUserProfilePopover { +- (void)showUserProfile { appDelegate.activeUserProfileId = [NSString stringWithFormat:@"%@", [appDelegate.activeFeed objectForKey:@"user_id"]]; - - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { - if (popoverController == nil) { - popoverController = [[UIPopoverController alloc] - initWithContentViewController:appDelegate.userProfileViewController]; - - popoverController.delegate = self; - } else { - if (popoverController.isPopoverVisible) { - [popoverController dismissPopoverAnimated:YES]; - return; - } - [popoverController setContentViewController:appDelegate.userProfileViewController]; - } - - [popoverController setPopoverContentSize:CGSizeMake(320, 416)]; - [popoverController presentPopoverFromBarButtonItem:self.navigationItem.rightBarButtonItem - permittedArrowDirections:UIPopoverArrowDirectionAny - animated:YES]; + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { + [appDelegate.masterContainerViewController showUserProfilePopover:self.navigationItem.rightBarButtonItem]; } else { [appDelegate showUserProfileModal]; } diff --git a/media/ios/Classes/NBContainerViewController.h b/media/ios/Classes/NBContainerViewController.h index 82119ddcd..875455638 100644 --- a/media/ios/Classes/NBContainerViewController.h +++ b/media/ios/Classes/NBContainerViewController.h @@ -10,7 +10,7 @@ @class NewsBlurAppDelegate; -@interface NBContainerViewController : UIViewController { +@interface NBContainerViewController : UIViewController { NewsBlurAppDelegate *appDelegate; } @@ -19,9 +19,12 @@ - (void)adjustDashboardScreen; - (void)adjustFeedDetailScreen; +- (void)adjustFeedDetailScreenForStoryTitles; - (void)transitionToFeedDetail; - (void)transitionFromFeedDetail; - (void)dragStoryToolbar:(int)yCoordinate; +- (void)showUserProfilePopover:(id)sender; + @end diff --git a/media/ios/Classes/NBContainerViewController.m b/media/ios/Classes/NBContainerViewController.m index 8eede7f44..10f4f9b0a 100644 --- a/media/ios/Classes/NBContainerViewController.m +++ b/media/ios/Classes/NBContainerViewController.m @@ -12,9 +12,10 @@ #import "DashboardViewController.h" #import "StoryDetailViewController.h" #import "ShareViewController.h" +#import "UserProfileViewController.h" #define NB_DEFAULT_MASTER_WIDTH 270 -#define NB_DEFAULT_STORY_TITLE_HEIGHT 960 - 591 +#define NB_DEFAULT_STORY_TITLE_HEIGHT 1024 - 591 #define NB_DEFAULT_SLIDER_INTERVAL 0.4 @interface NBContainerViewController () @@ -26,7 +27,10 @@ @property (nonatomic, strong) DashboardViewController *dashboardViewController; @property (nonatomic, strong) StoryDetailViewController *storyDetailViewController; @property (nonatomic, strong) ShareViewController *shareViewController; +@property (nonatomic, strong) UIView *storyTitlesStub; @property (readwrite) int storyTitlesYCoordinate; +@property (readwrite) BOOL storyTitlesOnLeft; +@property (nonatomic, strong) UIPopoverController *popoverController; @property (readwrite) BOOL feedDetailIsVisible; @@ -44,6 +48,9 @@ @synthesize feedDetailIsVisible; @synthesize storyNavigationController; @synthesize storyTitlesYCoordinate; +@synthesize storyTitlesOnLeft; +@synthesize popoverController; +@synthesize storyTitlesStub; - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { @@ -88,11 +95,24 @@ // set default y coordinate for feedDetailY from saved preferences NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults]; NSInteger savedStoryTitlesYCoordinate = [userPreferences integerForKey:@"storyTitlesYCoordinate"]; - if (savedStoryTitlesYCoordinate) { + if (savedStoryTitlesYCoordinate == 1004) { self.storyTitlesYCoordinate = savedStoryTitlesYCoordinate; + self.storyTitlesOnLeft = YES; + } else if (savedStoryTitlesYCoordinate) { + self.storyTitlesYCoordinate = savedStoryTitlesYCoordinate; + self.storyTitlesOnLeft = NO; } else { - self.storyTitlesYCoordinate = 960 - NB_DEFAULT_STORY_TITLE_HEIGHT; + self.storyTitlesYCoordinate = 1024 - NB_DEFAULT_STORY_TITLE_HEIGHT; } + + // set up story titles stub + UIView * storyTitlesPlaceholder = [[UIView alloc] initWithFrame:CGRectZero]; + storyTitlesPlaceholder.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;; + storyTitlesPlaceholder.autoresizesSubviews = YES; + storyTitlesPlaceholder.backgroundColor = [UIColor whiteColor]; + + self.storyTitlesStub = storyTitlesPlaceholder; + [self.view addSubview:self.storyTitlesStub]; } - (void)viewWillLayoutSubviews { @@ -120,6 +140,28 @@ } } +# pragma mark Modals and Popovers + +- (void)showUserProfilePopover:(id)sender { + if (popoverController == nil) { + popoverController = [[UIPopoverController alloc] + initWithContentViewController:appDelegate.userProfileViewController]; + + popoverController.delegate = self; + } else { + if (popoverController.isPopoverVisible) { + [popoverController dismissPopoverAnimated:YES]; + return; + } + [popoverController setContentViewController:appDelegate.userProfileViewController]; + } + + [popoverController setPopoverContentSize:CGSizeMake(320, 416)]; + [popoverController presentPopoverFromBarButtonItem:sender + permittedArrowDirections:UIPopoverArrowDirectionAny + animated:YES]; +} + # pragma mark Screen Transitions and Layout - (void)adjustDashboardScreen { @@ -129,23 +171,31 @@ } - (void)adjustFeedDetailScreen { + NSLog(@"in adjustFeedDetialScreen"); CGRect vb = [self.view bounds]; UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation; - if (UIInterfaceOrientationIsPortrait(orientation)) { + if (UIInterfaceOrientationIsPortrait(orientation) && !self.storyTitlesOnLeft) { // add the back button - //self.storyDetailViewController.topToolbar.items = [NSArray arrayWithObjects:self.storyDetailViewController.buttonBack, nil]; + self.storyDetailViewController.navigationItem.leftBarButtonItem = self.storyDetailViewController.buttonBack; + + // set center title + UIView *titleLabel = [appDelegate makeFeedTitle:appDelegate.activeFeed]; + self.storyDetailViewController.navigationItem.titleView = titleLabel; if ([[self.masterNavigationController viewControllers] containsObject:self.feedDetailViewController]) { [self.masterNavigationController popViewControllerAnimated:NO]; } self.storyNavigationController.view.frame = CGRectMake(0, 0, vb.size.width, self.storyTitlesYCoordinate); self.feedDetailViewController.view.frame = CGRectMake(0, self.storyTitlesYCoordinate, vb.size.width, vb.size.height - self.storyTitlesYCoordinate); - [self.view addSubview:self.feedDetailViewController.view]; + [self.view insertSubview:self.feedDetailViewController.view atIndex:0]; [self.masterNavigationController.view removeFromSuperview]; } else { // remove the back button - //self.storyNavigationController.topToolbar.items = nil; + self.storyDetailViewController.navigationItem.leftBarButtonItem = nil; + + // remove center title + self.storyDetailViewController.navigationItem.titleView = nil; if (![[self.masterNavigationController viewControllers] containsObject:self.feedDetailViewController]) { [self.masterNavigationController pushViewController:self.feedDetailViewController animated:NO]; @@ -156,6 +206,60 @@ } } +- (void)adjustFeedDetailScreenForStoryTitles { + CGRect vb = [self.view bounds]; + if (self.storyTitlesYCoordinate == 1004 && !self.storyTitlesOnLeft) { + self.storyTitlesOnLeft = YES; + + // remove the back button + self.storyDetailViewController.navigationItem.leftBarButtonItem = nil; + + // remove center title + self.storyDetailViewController.navigationItem.titleView = nil; + + if (![[self.masterNavigationController viewControllers] containsObject:self.feedDetailViewController]) { + [self.masterNavigationController pushViewController:self.feedDetailViewController animated:NO]; + } + + [self.view addSubview:self.masterNavigationController.view]; + self.masterNavigationController.view.frame = CGRectMake(-NB_DEFAULT_MASTER_WIDTH, 0, NB_DEFAULT_MASTER_WIDTH, vb.size.height); + [UIView animateWithDuration:NB_DEFAULT_SLIDER_INTERVAL delay:0 options:UIViewAnimationOptionCurveLinear animations:^{ + self.masterNavigationController.view.frame = CGRectMake(0, 0, NB_DEFAULT_MASTER_WIDTH, vb.size.height); + self.storyNavigationController.view.frame = CGRectMake(NB_DEFAULT_MASTER_WIDTH + 1, 0, vb.size.width - NB_DEFAULT_MASTER_WIDTH - 1, vb.size.height); + } completion:^(BOOL finished) { + [self.feedDetailViewController checkScroll]; + [appDelegate adjustStoryDetailWebView]; + }]; + } else { + self.storyTitlesOnLeft = NO; + + // add the back button + self.storyDetailViewController.navigationItem.leftBarButtonItem = self.storyDetailViewController.buttonBack; + + // set center title + UIView *titleLabel = [appDelegate makeFeedTitle:appDelegate.activeFeed]; + self.storyDetailViewController.navigationItem.titleView = titleLabel; + + [UIView animateWithDuration:NB_DEFAULT_SLIDER_INTERVAL delay:0 options:UIViewAnimationOptionCurveLinear animations:^{ +// self.masterNavigationController.view.frame = CGRectMake(-NB_DEFAULT_MASTER_WIDTH, 0, NB_DEFAULT_MASTER_WIDTH, vb.size.height); + + [self.masterNavigationController.view removeFromSuperview]; + self.storyNavigationController.view.frame = CGRectMake(0, 0, vb.size.width, storyTitlesYCoordinate); + + self.storyTitlesStub.frame = CGRectMake(0, storyTitlesYCoordinate, vb.size.width, vb.size.height - storyTitlesYCoordinate); + } completion:^(BOOL finished) { + if ([[self.masterNavigationController viewControllers] containsObject:self.feedDetailViewController]) { + [self.masterNavigationController popViewControllerAnimated:NO]; + } + [self.view insertSubview:self.feedDetailViewController.view aboveSubview:self.storyTitlesStub]; + self.feedDetailViewController.view.frame = CGRectMake(0, storyTitlesYCoordinate, vb.size.width, vb.size.height - storyTitlesYCoordinate); + self.storyTitlesStub.hidden = YES; + + [appDelegate adjustStoryDetailWebView]; + }]; + } +} + - (void)transitionToFeedDetail { self.feedDetailIsVisible = YES; CGRect vb = [self.view bounds]; @@ -182,7 +286,10 @@ } UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation; - if (UIInterfaceOrientationIsPortrait(orientation)) { + if (UIInterfaceOrientationIsPortrait(orientation) && !self.storyTitlesOnLeft) { + + self.storyDetailViewController.navigationItem.leftBarButtonItem = self.storyDetailViewController.buttonBack; + self.storyNavigationController.view.frame = CGRectMake(vb.size.width, 0, vb.size.width, storyTitlesYCoordinate); self.feedDetailViewController.view.frame = CGRectMake(vb.size.width, self.storyTitlesYCoordinate, vb.size.width, vb.size.height - storyTitlesYCoordinate); float largeTimeInterval = NB_DEFAULT_SLIDER_INTERVAL * ( vb.size.width - NB_DEFAULT_MASTER_WIDTH) / vb.size.width; @@ -196,18 +303,38 @@ [UIView animateWithDuration:smallTimeInterval delay:0 options:UIViewAnimationOptionCurveLinear animations:^{ self.storyNavigationController.view.frame = CGRectMake(0, 0, vb.size.width, self.storyTitlesYCoordinate); self.feedDetailViewController.view.frame = CGRectMake(0, self.storyTitlesYCoordinate, vb.size.width, vb.size.height - storyTitlesYCoordinate); - self.masterNavigationController.view.frame = CGRectMake( -NB_DEFAULT_MASTER_WIDTH, 0, NB_DEFAULT_MASTER_WIDTH, vb.size.height); + self.masterNavigationController.view.frame = CGRectMake(-NB_DEFAULT_MASTER_WIDTH, 0, NB_DEFAULT_MASTER_WIDTH, vb.size.height); } completion:^(BOOL finished) { - [self.dashboardViewController.view removeFromSuperview]; [self.masterNavigationController.view removeFromSuperview]; }]; - }]; + }]; + + + // set center title + UIView *titleLabel = [appDelegate makeFeedTitle:appDelegate.activeFeed]; + self.storyDetailViewController.navigationItem.titleView = titleLabel; + +// // set right avatar title image +// if (appDelegate.isSocialView) { +// UIButton *titleImageButton = [appDelegate makeRightFeedTitle:appDelegate.activeFeed]; +// [titleImageButton addTarget:self action:@selector(showUserProfilePopover) forControlEvents:UIControlEventTouchUpInside]; +// UIBarButtonItem *titleImageBarButton = [[UIBarButtonItem alloc] +// initWithCustomView:titleImageButton]; +// self.storyDetailViewController.navigationItem.rightBarButtonItem = titleImageBarButton; +// } else { +// self.storyDetailViewController.navigationItem.rightBarButtonItem = nil; +// } } else { + self.storyDetailViewController.navigationItem.leftBarButtonItem = nil; + [self.masterNavigationController pushViewController:self.feedDetailViewController animated:YES]; self.storyNavigationController.view.frame = CGRectMake(NB_DEFAULT_MASTER_WIDTH + 1, 0, vb.size.width - NB_DEFAULT_MASTER_WIDTH - 1, vb.size.height); [self.dashboardViewController.view removeFromSuperview]; + + // remove center title + self.storyDetailViewController.navigationItem.titleView = nil; } } @@ -248,25 +375,45 @@ } - (void)dragStoryToolbar:(int)yCoordinate { -// NSLog(@"yCoordinate is %i", yCoordinate); + + CGRect vb = [self.view bounds]; // account for top toolbar - yCoordinate = yCoordinate + 44; + yCoordinate = yCoordinate + 44 + 20; + NSLog(@"yCoordinate is %i", yCoordinate); - if (yCoordinate > 344 && yCoordinate < 754) { + NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults]; + + if (yCoordinate > 344 && yCoordinate <= (vb.size.height - 10)) { // save coordinate self.storyTitlesYCoordinate = yCoordinate; - NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults]; [userPreferences setInteger:yCoordinate forKey:@"storyTitlesYCoordinate"]; [userPreferences synchronize]; // change frames - CGRect vb = [self.view bounds]; - self.storyNavigationController.view.frame = CGRectMake(0, 0, vb.size.width, yCoordinate); - self.feedDetailViewController.view.frame = CGRectMake(0, yCoordinate, vb.size.width, vb.size.height - yCoordinate); + + self.storyNavigationController.view.frame = CGRectMake(self.storyNavigationController.view.frame.origin.x, 0, self.storyNavigationController.view.frame.size.width, yCoordinate); + if (self.storyTitlesOnLeft) { + self.storyTitlesStub.hidden = NO; + self.storyTitlesStub.frame = CGRectMake(self.storyNavigationController.view.frame.origin.x, yCoordinate, self.storyNavigationController.view.frame.size.width, vb.size.height - yCoordinate); + } else { + self.feedDetailViewController.view.frame = CGRectMake(self.storyNavigationController.view.frame.origin.x, yCoordinate, self.storyNavigationController.view.frame.size.width, vb.size.height - yCoordinate); + [self.feedDetailViewController checkScroll]; + } + } else if (yCoordinate >= (vb.size.height - 10)){ + // save coordinate + [userPreferences setInteger:1004 forKey:@"storyTitlesYCoordinate"]; + [userPreferences synchronize]; + self.storyTitlesYCoordinate = 1004; + NSLog(@"Adjust the view"); + self.storyNavigationController.view.frame = CGRectMake(self.storyNavigationController.view.frame.origin.x, 0, self.storyNavigationController.view.frame.size.width, vb.size.height); + if (!self.storyTitlesOnLeft) { +// self.feedDetailViewController.view.frame = CGRectMake(self.storyNavigationController.view.frame.origin.x, 0, self.storyNavigationController.view.frame.size.width, 0); + } else { + self.storyTitlesStub.hidden = NO; + self.storyTitlesStub.frame = CGRectMake(self.feedDetailViewController.view.frame.origin.x, 0, self.feedDetailViewController.view.frame.size.width, 0); + } } - } - - -@end + +@end \ No newline at end of file diff --git a/media/ios/Classes/NewsBlurAppDelegate.m b/media/ios/Classes/NewsBlurAppDelegate.m index 7294c1d80..41a182429 100644 --- a/media/ios/Classes/NewsBlurAppDelegate.m +++ b/media/ios/Classes/NewsBlurAppDelegate.m @@ -198,17 +198,20 @@ self.userProfileViewController = userProfileView; UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.userProfileViewController]; - // adding Done button - UIBarButtonItem *donebutton = [[UIBarButtonItem alloc] - initWithTitle:@"Done" - style:UIBarButtonItemStyleDone - target:self - action:@selector(hideUserProfileModal)]; - - self.userProfileViewController.navigationItem.rightBarButtonItem = donebutton; - self.userProfileViewController.navigationItem.title = @"Profile"; - [self.navigationController presentModalViewController:navController animated:YES]; - + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { + + } else { + // adding Done button + UIBarButtonItem *donebutton = [[UIBarButtonItem alloc] + initWithTitle:@"Done" + style:UIBarButtonItemStyleDone + target:self + action:@selector(hideUserProfileModal)]; + + self.userProfileViewController.navigationItem.rightBarButtonItem = donebutton; + self.userProfileViewController.navigationItem.title = @"Profile"; + [self.navigationController presentModalViewController:navController animated:YES]; + } } - (void)hideUserProfileModal { @@ -1129,7 +1132,7 @@ NSString *feedIdStr = [NSString stringWithFormat:@"%@", [feed objectForKey:@"id"]]; UIImage *titleImage; if (self.isRiverView) { - titleImage = [UIImage imageNamed:@"folder.png"]; + titleImage = [UIImage imageNamed:@"folder_white.png"]; } else { titleImage = [Utilities getImage:feedIdStr]; } @@ -1143,15 +1146,7 @@ - (UIButton *)makeRightFeedTitle:(NSDictionary *)feed { NSString *feedIdStr = [NSString stringWithFormat:@"%@", [feed objectForKey:@"id"]]; - UIImage *titleImage; - if (self.isRiverView) { - titleImage = [UIImage imageNamed:@"folder.png"]; - } else if (self.isRiverView) { - titleImage = [Utilities getImage:feedIdStr]; - } else { - titleImage = [Utilities getImage:feedIdStr]; - } - + UIImage *titleImage = [Utilities getImage:feedIdStr]; titleImage = [Utilities roundCorneredImage:titleImage radius:6]; diff --git a/media/ios/Classes/NewsBlurViewController.h b/media/ios/Classes/NewsBlurViewController.h index e0ab9311b..d36c1f9dc 100644 --- a/media/ios/Classes/NewsBlurViewController.h +++ b/media/ios/Classes/NewsBlurViewController.h @@ -79,7 +79,7 @@ - (void)requestFailed:(ASIHTTPRequest *)request; - (void)refreshFeedList; - (void)pullToRefreshViewShouldRefresh:(PullToRefreshView *)view; -- (void)showUserProfilePopover:(id)sender; +- (void)showUserProfile; - (void)showSettingsPopover:(id)sender; - (NSDate *)pullToRefreshViewLastUpdated:(PullToRefreshView *)view; diff --git a/media/ios/Classes/NewsBlurViewController.m b/media/ios/Classes/NewsBlurViewController.m index 270c2d9e0..61a075200 100644 --- a/media/ios/Classes/NewsBlurViewController.m +++ b/media/ios/Classes/NewsBlurViewController.m @@ -8,6 +8,7 @@ #import "NewsBlurViewController.h" #import "NewsBlurAppDelegate.h" +#import "NBContainerViewController.h" #import "DashboardViewController.h" #import "FeedTableCell.h" #import "FeedsMenuViewController.h" @@ -291,7 +292,7 @@ UIButton *userAvatarButton = [UIButton buttonWithType:UIButtonTypeCustom]; userAvatarButton.bounds = CGRectMake(0, 0, 32, 32); - [userAvatarButton addTarget:self action:@selector(showUserProfilePopover:) forControlEvents:UIControlEventTouchUpInside]; + [userAvatarButton addTarget:self action:@selector(showUserProfile) forControlEvents:UIControlEventTouchUpInside]; [userAvatarButton setImage:userAvatarImage forState:UIControlStateNormal]; UIBarButtonItem *userAvatar = [[UIBarButtonItem alloc] @@ -415,27 +416,10 @@ } -- (void)showUserProfilePopover:(id)sender { +- (void)showUserProfile { appDelegate.activeUserProfileId = [NSString stringWithFormat:@"%@", [appDelegate.dictUserProfile objectForKey:@"user_id"]]; - - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { - if (popoverController == nil) { - popoverController = [[UIPopoverController alloc] - initWithContentViewController:appDelegate.userProfileViewController]; - - popoverController.delegate = self; - } else { - if (popoverController.isPopoverVisible) { - [popoverController dismissPopoverAnimated:YES]; - return; - } - [popoverController setContentViewController:appDelegate.userProfileViewController]; - } - - [popoverController setPopoverContentSize:CGSizeMake(320, 416)]; - [popoverController presentPopoverFromBarButtonItem:self.navigationItem.leftBarButtonItem - permittedArrowDirections:UIPopoverArrowDirectionAny - animated:YES]; + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { + [appDelegate.masterContainerViewController showUserProfilePopover:self.navigationItem.leftBarButtonItem]; } else { [appDelegate showUserProfileModal]; } diff --git a/media/ios/Classes/StoryDetailViewController.h b/media/ios/Classes/StoryDetailViewController.h index 442822a8a..0790d6c41 100644 --- a/media/ios/Classes/StoryDetailViewController.h +++ b/media/ios/Classes/StoryDetailViewController.h @@ -25,6 +25,8 @@ UIActivityIndicatorView *loadingIndicator; UIPopoverController *popoverController; UIToolbar *bottomPlaceholderToolbar; + UIBarButtonItem *buttonBack; + } @property (nonatomic, strong) UIActivityIndicatorView *loadingIndicator; @@ -36,6 +38,7 @@ @property (nonatomic) IBOutlet UIToolbar *toolbar; @property (nonatomic) IBOutlet UIBarButtonItem *buttonPrevious; @property (nonatomic) IBOutlet UIBarButtonItem *buttonNext; +@property (nonatomic) UIBarButtonItem *buttonBack; @property (nonatomic) IBOutlet UIBarButtonItem *activity; @property (nonatomic) IBOutlet UIBarButtonItem *buttonAction; @property (nonatomic) IBOutlet UIView *feedTitleGradient; diff --git a/media/ios/Classes/StoryDetailViewController.m b/media/ios/Classes/StoryDetailViewController.m index 2ea6a703a..9da95d038 100644 --- a/media/ios/Classes/StoryDetailViewController.m +++ b/media/ios/Classes/StoryDetailViewController.m @@ -39,6 +39,7 @@ @synthesize popoverController; @synthesize fontSettingsButton; @synthesize originalStoryButton; +@synthesize buttonBack; @synthesize bottomPlaceholderToolbar; @@ -79,6 +80,11 @@ action:@selector(toggleFontSize:) ]; + UIBarButtonItem *backButton = [[UIBarButtonItem alloc] + initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(transitionFromFeedDetail)]; + + self.buttonBack = backButton; + self.originalStoryButton = originalButton; self.fontSettingsButton = fontSettings; @@ -100,14 +106,6 @@ self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:originalButton, fontSettingsButton, nil]; } else { -// UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom]; -// backBtn.frame = CGRectMake(0, 0, 51, 31); -// [backBtn setImage:[UIImage imageNamed:@"nav_btn_back.png"] forState:UIControlStateNormal]; -// [backBtn addTarget:self action:@selector(transitionFromFeedDetail) forControlEvents:UIControlEventTouchUpInside]; - UIBarButtonItem *backButton = [[UIBarButtonItem alloc] - initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(transitionFromFeedDetail)]; - - self.navigationItem.leftBarButtonItem = backButton; self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:0.16f green:0.36f blue:0.46 alpha:0.9]; self.bottomPlaceholderToolbar.tintColor = [UIColor colorWithRed:0.16f green:0.36f blue:0.46 alpha:0.9]; } @@ -140,6 +138,17 @@ } } +- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { + UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation; + + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad && UIInterfaceOrientationIsPortrait(orientation)) { + UITouch *theTouch = [touches anyObject]; + if ([theTouch.view isKindOfClass: UIToolbar.class]) { + [appDelegate.masterContainerViewController adjustFeedDetailScreenForStoryTitles]; + } + } +} + - (void)viewDidUnload { [self setButtonNextStory:nil]; [self setInnerView:nil]; diff --git a/media/ios/Classes/UserProfileViewController.m b/media/ios/Classes/UserProfileViewController.m index ab20c8203..9b45edd54 100644 --- a/media/ios/Classes/UserProfileViewController.m +++ b/media/ios/Classes/UserProfileViewController.m @@ -38,7 +38,7 @@ { [super viewDidLoad]; // Do any additional setup after loading the view from its nib. - + self.appDelegate = (NewsBlurAppDelegate *)[[UIApplication sharedApplication] delegate]; } - (void)viewDidUnload diff --git a/media/ios/NewsBlur.xcodeproj/project.pbxproj b/media/ios/NewsBlur.xcodeproj/project.pbxproj index 988621cdd..5cabbb489 100755 --- a/media/ios/NewsBlur.xcodeproj/project.pbxproj +++ b/media/ios/NewsBlur.xcodeproj/project.pbxproj @@ -19,6 +19,8 @@ 431B858115A23C6B00DCE497 /* ProfileBadge.m in Sources */ = {isa = PBXBuildFile; fileRef = 431B858015A23C6B00DCE497 /* ProfileBadge.m */; }; 432E29FB15BFBCA10006EA51 /* back.png in Resources */ = {isa = PBXBuildFile; fileRef = 432E29F915BFBCA10006EA51 /* back.png */; }; 432E29FC15BFBCA10006EA51 /* back@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 432E29FA15BFBCA10006EA51 /* back@2x.png */; }; + 432E2A0315C079770006EA51 /* folder_white.png in Resources */ = {isa = PBXBuildFile; fileRef = 432E2A0115C079770006EA51 /* folder_white.png */; }; + 432E2A0415C079770006EA51 /* folder_white@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 432E2A0215C079770006EA51 /* folder_white@2x.png */; }; 433323B8158901A40025064D /* fountain_pen.png in Resources */ = {isa = PBXBuildFile; fileRef = 433323B6158901A40025064D /* fountain_pen.png */; }; 433323B9158901A40025064D /* fountain_pen@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 433323B7158901A40025064D /* fountain_pen@2x.png */; }; 433323BB158901C10025064D /* login_background.png in Resources */ = {isa = PBXBuildFile; fileRef = 433323BA158901C10025064D /* login_background.png */; }; @@ -320,6 +322,8 @@ 431B858015A23C6B00DCE497 /* ProfileBadge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = ProfileBadge.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; 432E29F915BFBCA10006EA51 /* back.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = back.png; sourceTree = ""; }; 432E29FA15BFBCA10006EA51 /* back@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "back@2x.png"; sourceTree = ""; }; + 432E2A0115C079770006EA51 /* folder_white.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = folder_white.png; sourceTree = ""; }; + 432E2A0215C079770006EA51 /* folder_white@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "folder_white@2x.png"; sourceTree = ""; }; 433323B6158901A40025064D /* fountain_pen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = fountain_pen.png; sourceTree = ""; }; 433323B7158901A40025064D /* fountain_pen@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "fountain_pen@2x.png"; sourceTree = ""; }; 433323BA158901C10025064D /* login_background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = login_background.png; sourceTree = ""; }; @@ -970,6 +974,8 @@ 431B857615A132B600DCE497 /* Images */ = { isa = PBXGroup; children = ( + 432E2A0115C079770006EA51 /* folder_white.png */, + 432E2A0215C079770006EA51 /* folder_white@2x.png */, 432E29F915BFBCA10006EA51 /* back.png */, 432E29FA15BFBCA10006EA51 /* back@2x.png */, 43A3912315B733CA0074B212 /* dashboard_style.png */, @@ -1806,6 +1812,8 @@ 43DACC4015BDE47F004A938B /* StoryDetailContainerViewController.xib in Resources */, 432E29FB15BFBCA10006EA51 /* back.png in Resources */, 432E29FC15BFBCA10006EA51 /* back@2x.png in Resources */, + 432E2A0315C079770006EA51 /* folder_white.png in Resources */, + 432E2A0415C079770006EA51 /* folder_white@2x.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/media/ios/Resources-iPad/Classes/StoryDetailViewController~ipad.xib b/media/ios/Resources-iPad/Classes/StoryDetailViewController~ipad.xib index 5d0623303..89e3eca7d 100644 --- a/media/ios/Resources-iPad/Classes/StoryDetailViewController~ipad.xib +++ b/media/ios/Resources-iPad/Classes/StoryDetailViewController~ipad.xib @@ -4885,7 +4885,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE - 98 + 99 @@ -7091,6 +7091,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE buttonNext buttonNextStory buttonPrevious + buttonProgressView feedTitleGradient fontSettingsButton innerView @@ -7108,6 +7109,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE UIBarButtonItem UIBarButtonItem UIBarButtonItem + UIBarButtonItem UIView UIBarButtonItem UIView @@ -7128,6 +7130,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE buttonNext buttonNextStory buttonPrevious + buttonProgressView feedTitleGradient fontSettingsButton innerView @@ -7166,6 +7169,10 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE buttonPrevious UIBarButtonItem + + buttonProgressView + UIBarButtonItem + feedTitleGradient UIView diff --git a/media/ios/Resources/folder_white.png b/media/ios/Resources/folder_white.png new file mode 100644 index 000000000..6d69f7698 Binary files /dev/null and b/media/ios/Resources/folder_white.png differ diff --git a/media/ios/Resources/folder_white@2x.png b/media/ios/Resources/folder_white@2x.png new file mode 100644 index 000000000..7bed2efec Binary files /dev/null and b/media/ios/Resources/folder_white@2x.png differ