adding in popover controllers to master container VC

This commit is contained in:
Roy Yang 2012-07-25 17:29:29 -07:00
parent 940393cf47
commit 3a00070535
14 changed files with 239 additions and 98 deletions

View file

@ -66,7 +66,7 @@
- (void)deleteSite; - (void)deleteSite;
- (void)deleteFolder; - (void)deleteFolder;
- (void)openMoveView; - (void)openMoveView;
- (void)showUserProfilePopover; - (void)showUserProfile;
- (void)changeActiveFeedDetailRow; - (void)changeActiveFeedDetailRow;
- (void)instafetchFeed; - (void)instafetchFeed;
- (void)loadStory:(FeedDetailTableCell *)cell atRow:(int)row; - (void)loadStory:(FeedDetailTableCell *)cell atRow:(int)row;

View file

@ -9,6 +9,7 @@
#import <QuartzCore/QuartzCore.h> #import <QuartzCore/QuartzCore.h>
#import "FeedDetailViewController.h" #import "FeedDetailViewController.h"
#import "NewsBlurAppDelegate.h" #import "NewsBlurAppDelegate.h"
#import "NBContainerViewController.h"
#import "FeedDetailTableCell.h" #import "FeedDetailTableCell.h"
#import "ASIFormDataRequest.h" #import "ASIFormDataRequest.h"
#import "UserProfileViewController.h" #import "UserProfileViewController.h"
@ -19,6 +20,7 @@
#import "StringHelper.h" #import "StringHelper.h"
#import "Utilities.h" #import "Utilities.h"
#define kTableViewRowHeight 65; #define kTableViewRowHeight 65;
#define kTableViewRiverRowHeight 81; #define kTableViewRiverRowHeight 81;
#define kMarkReadActionSheet 1; #define kMarkReadActionSheet 1;
@ -85,7 +87,7 @@
// set right avatar title image // set right avatar title image
if (appDelegate.isSocialView) { if (appDelegate.isSocialView) {
UIButton *titleImageButton = [appDelegate makeRightFeedTitle:appDelegate.activeFeed]; 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] UIBarButtonItem *titleImageBarButton = [[UIBarButtonItem alloc]
initWithCustomView:titleImageButton]; initWithCustomView:titleImageButton];
self.navigationItem.rightBarButtonItem = titleImageBarButton; self.navigationItem.rightBarButtonItem = titleImageBarButton;
@ -982,27 +984,10 @@
[appDelegate showMoveSite]; [appDelegate showMoveSite];
} }
- (void)showUserProfilePopover { - (void)showUserProfile {
appDelegate.activeUserProfileId = [NSString stringWithFormat:@"%@", [appDelegate.activeFeed objectForKey:@"user_id"]]; appDelegate.activeUserProfileId = [NSString stringWithFormat:@"%@", [appDelegate.activeFeed objectForKey:@"user_id"]];
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
if (popoverController == nil) { [appDelegate.masterContainerViewController showUserProfilePopover:self.navigationItem.rightBarButtonItem];
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];
} else { } else {
[appDelegate showUserProfileModal]; [appDelegate showUserProfileModal];
} }

View file

@ -10,7 +10,7 @@
@class NewsBlurAppDelegate; @class NewsBlurAppDelegate;
@interface NBContainerViewController : UIViewController { @interface NBContainerViewController : UIViewController <UIPopoverControllerDelegate> {
NewsBlurAppDelegate *appDelegate; NewsBlurAppDelegate *appDelegate;
} }
@ -19,9 +19,12 @@
- (void)adjustDashboardScreen; - (void)adjustDashboardScreen;
- (void)adjustFeedDetailScreen; - (void)adjustFeedDetailScreen;
- (void)adjustFeedDetailScreenForStoryTitles;
- (void)transitionToFeedDetail; - (void)transitionToFeedDetail;
- (void)transitionFromFeedDetail; - (void)transitionFromFeedDetail;
- (void)dragStoryToolbar:(int)yCoordinate; - (void)dragStoryToolbar:(int)yCoordinate;
- (void)showUserProfilePopover:(id)sender;
@end @end

View file

@ -12,9 +12,10 @@
#import "DashboardViewController.h" #import "DashboardViewController.h"
#import "StoryDetailViewController.h" #import "StoryDetailViewController.h"
#import "ShareViewController.h" #import "ShareViewController.h"
#import "UserProfileViewController.h"
#define NB_DEFAULT_MASTER_WIDTH 270 #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 #define NB_DEFAULT_SLIDER_INTERVAL 0.4
@interface NBContainerViewController () @interface NBContainerViewController ()
@ -26,7 +27,10 @@
@property (nonatomic, strong) DashboardViewController *dashboardViewController; @property (nonatomic, strong) DashboardViewController *dashboardViewController;
@property (nonatomic, strong) StoryDetailViewController *storyDetailViewController; @property (nonatomic, strong) StoryDetailViewController *storyDetailViewController;
@property (nonatomic, strong) ShareViewController *shareViewController; @property (nonatomic, strong) ShareViewController *shareViewController;
@property (nonatomic, strong) UIView *storyTitlesStub;
@property (readwrite) int storyTitlesYCoordinate; @property (readwrite) int storyTitlesYCoordinate;
@property (readwrite) BOOL storyTitlesOnLeft;
@property (nonatomic, strong) UIPopoverController *popoverController;
@property (readwrite) BOOL feedDetailIsVisible; @property (readwrite) BOOL feedDetailIsVisible;
@ -44,6 +48,9 @@
@synthesize feedDetailIsVisible; @synthesize feedDetailIsVisible;
@synthesize storyNavigationController; @synthesize storyNavigationController;
@synthesize storyTitlesYCoordinate; @synthesize storyTitlesYCoordinate;
@synthesize storyTitlesOnLeft;
@synthesize popoverController;
@synthesize storyTitlesStub;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{ {
@ -88,11 +95,24 @@
// set default y coordinate for feedDetailY from saved preferences // set default y coordinate for feedDetailY from saved preferences
NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults]; NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
NSInteger savedStoryTitlesYCoordinate = [userPreferences integerForKey:@"storyTitlesYCoordinate"]; NSInteger savedStoryTitlesYCoordinate = [userPreferences integerForKey:@"storyTitlesYCoordinate"];
if (savedStoryTitlesYCoordinate) { if (savedStoryTitlesYCoordinate == 1004) {
self.storyTitlesYCoordinate = savedStoryTitlesYCoordinate; self.storyTitlesYCoordinate = savedStoryTitlesYCoordinate;
self.storyTitlesOnLeft = YES;
} else if (savedStoryTitlesYCoordinate) {
self.storyTitlesYCoordinate = savedStoryTitlesYCoordinate;
self.storyTitlesOnLeft = NO;
} else { } 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 { - (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 # pragma mark Screen Transitions and Layout
- (void)adjustDashboardScreen { - (void)adjustDashboardScreen {
@ -129,23 +171,31 @@
} }
- (void)adjustFeedDetailScreen { - (void)adjustFeedDetailScreen {
NSLog(@"in adjustFeedDetialScreen");
CGRect vb = [self.view bounds]; CGRect vb = [self.view bounds];
UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation; UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;
if (UIInterfaceOrientationIsPortrait(orientation)) { if (UIInterfaceOrientationIsPortrait(orientation) && !self.storyTitlesOnLeft) {
// add the back button // 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]) { if ([[self.masterNavigationController viewControllers] containsObject:self.feedDetailViewController]) {
[self.masterNavigationController popViewControllerAnimated:NO]; [self.masterNavigationController popViewControllerAnimated:NO];
} }
self.storyNavigationController.view.frame = CGRectMake(0, 0, vb.size.width, self.storyTitlesYCoordinate); 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.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]; [self.masterNavigationController.view removeFromSuperview];
} else { } else {
// remove the back button // 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]) { if (![[self.masterNavigationController viewControllers] containsObject:self.feedDetailViewController]) {
[self.masterNavigationController pushViewController:self.feedDetailViewController animated:NO]; [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 { - (void)transitionToFeedDetail {
self.feedDetailIsVisible = YES; self.feedDetailIsVisible = YES;
CGRect vb = [self.view bounds]; CGRect vb = [self.view bounds];
@ -182,7 +286,10 @@
} }
UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation; 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.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); 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; float largeTimeInterval = NB_DEFAULT_SLIDER_INTERVAL * ( vb.size.width - NB_DEFAULT_MASTER_WIDTH) / vb.size.width;
@ -198,16 +305,36 @@
self.feedDetailViewController.view.frame = CGRectMake(0, self.storyTitlesYCoordinate, vb.size.width, vb.size.height - 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) { } completion:^(BOOL finished) {
[self.dashboardViewController.view removeFromSuperview]; [self.dashboardViewController.view removeFromSuperview];
[self.masterNavigationController.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 { } else {
self.storyDetailViewController.navigationItem.leftBarButtonItem = nil;
[self.masterNavigationController pushViewController:self.feedDetailViewController animated:YES]; [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.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]; [self.dashboardViewController.view removeFromSuperview];
// remove center title
self.storyDetailViewController.navigationItem.titleView = nil;
} }
} }
@ -248,25 +375,45 @@
} }
- (void)dragStoryToolbar:(int)yCoordinate { - (void)dragStoryToolbar:(int)yCoordinate {
// NSLog(@"yCoordinate is %i", yCoordinate);
// account for top toolbar
yCoordinate = yCoordinate + 44;
if (yCoordinate > 344 && yCoordinate < 754) { CGRect vb = [self.view bounds];
// account for top toolbar
yCoordinate = yCoordinate + 44 + 20;
NSLog(@"yCoordinate is %i", yCoordinate);
NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
if (yCoordinate > 344 && yCoordinate <= (vb.size.height - 10)) {
// save coordinate // save coordinate
self.storyTitlesYCoordinate = yCoordinate; self.storyTitlesYCoordinate = yCoordinate;
NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
[userPreferences setInteger:yCoordinate forKey:@"storyTitlesYCoordinate"]; [userPreferences setInteger:yCoordinate forKey:@"storyTitlesYCoordinate"];
[userPreferences synchronize]; [userPreferences synchronize];
// change frames // 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

View file

@ -198,6 +198,9 @@
self.userProfileViewController = userProfileView; self.userProfileViewController = userProfileView;
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.userProfileViewController]; UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.userProfileViewController];
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
} else {
// adding Done button // adding Done button
UIBarButtonItem *donebutton = [[UIBarButtonItem alloc] UIBarButtonItem *donebutton = [[UIBarButtonItem alloc]
initWithTitle:@"Done" initWithTitle:@"Done"
@ -208,7 +211,7 @@
self.userProfileViewController.navigationItem.rightBarButtonItem = donebutton; self.userProfileViewController.navigationItem.rightBarButtonItem = donebutton;
self.userProfileViewController.navigationItem.title = @"Profile"; self.userProfileViewController.navigationItem.title = @"Profile";
[self.navigationController presentModalViewController:navController animated:YES]; [self.navigationController presentModalViewController:navController animated:YES];
}
} }
- (void)hideUserProfileModal { - (void)hideUserProfileModal {
@ -1129,7 +1132,7 @@
NSString *feedIdStr = [NSString stringWithFormat:@"%@", [feed objectForKey:@"id"]]; NSString *feedIdStr = [NSString stringWithFormat:@"%@", [feed objectForKey:@"id"]];
UIImage *titleImage; UIImage *titleImage;
if (self.isRiverView) { if (self.isRiverView) {
titleImage = [UIImage imageNamed:@"folder.png"]; titleImage = [UIImage imageNamed:@"folder_white.png"];
} else { } else {
titleImage = [Utilities getImage:feedIdStr]; titleImage = [Utilities getImage:feedIdStr];
} }
@ -1143,15 +1146,7 @@
- (UIButton *)makeRightFeedTitle:(NSDictionary *)feed { - (UIButton *)makeRightFeedTitle:(NSDictionary *)feed {
NSString *feedIdStr = [NSString stringWithFormat:@"%@", [feed objectForKey:@"id"]]; NSString *feedIdStr = [NSString stringWithFormat:@"%@", [feed objectForKey:@"id"]];
UIImage *titleImage; UIImage *titleImage = [Utilities getImage:feedIdStr];
if (self.isRiverView) {
titleImage = [UIImage imageNamed:@"folder.png"];
} else if (self.isRiverView) {
titleImage = [Utilities getImage:feedIdStr];
} else {
titleImage = [Utilities getImage:feedIdStr];
}
titleImage = [Utilities roundCorneredImage:titleImage radius:6]; titleImage = [Utilities roundCorneredImage:titleImage radius:6];

View file

@ -79,7 +79,7 @@
- (void)requestFailed:(ASIHTTPRequest *)request; - (void)requestFailed:(ASIHTTPRequest *)request;
- (void)refreshFeedList; - (void)refreshFeedList;
- (void)pullToRefreshViewShouldRefresh:(PullToRefreshView *)view; - (void)pullToRefreshViewShouldRefresh:(PullToRefreshView *)view;
- (void)showUserProfilePopover:(id)sender; - (void)showUserProfile;
- (void)showSettingsPopover:(id)sender; - (void)showSettingsPopover:(id)sender;
- (NSDate *)pullToRefreshViewLastUpdated:(PullToRefreshView *)view; - (NSDate *)pullToRefreshViewLastUpdated:(PullToRefreshView *)view;

View file

@ -8,6 +8,7 @@
#import "NewsBlurViewController.h" #import "NewsBlurViewController.h"
#import "NewsBlurAppDelegate.h" #import "NewsBlurAppDelegate.h"
#import "NBContainerViewController.h"
#import "DashboardViewController.h" #import "DashboardViewController.h"
#import "FeedTableCell.h" #import "FeedTableCell.h"
#import "FeedsMenuViewController.h" #import "FeedsMenuViewController.h"
@ -291,7 +292,7 @@
UIButton *userAvatarButton = [UIButton buttonWithType:UIButtonTypeCustom]; UIButton *userAvatarButton = [UIButton buttonWithType:UIButtonTypeCustom];
userAvatarButton.bounds = CGRectMake(0, 0, 32, 32); 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]; [userAvatarButton setImage:userAvatarImage forState:UIControlStateNormal];
UIBarButtonItem *userAvatar = [[UIBarButtonItem alloc] UIBarButtonItem *userAvatar = [[UIBarButtonItem alloc]
@ -415,27 +416,10 @@
} }
- (void)showUserProfilePopover:(id)sender { - (void)showUserProfile {
appDelegate.activeUserProfileId = [NSString stringWithFormat:@"%@", [appDelegate.dictUserProfile objectForKey:@"user_id"]]; appDelegate.activeUserProfileId = [NSString stringWithFormat:@"%@", [appDelegate.dictUserProfile objectForKey:@"user_id"]];
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
if (popoverController == nil) { [appDelegate.masterContainerViewController showUserProfilePopover:self.navigationItem.leftBarButtonItem];
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];
} else { } else {
[appDelegate showUserProfileModal]; [appDelegate showUserProfileModal];
} }

View file

@ -25,6 +25,8 @@
UIActivityIndicatorView *loadingIndicator; UIActivityIndicatorView *loadingIndicator;
UIPopoverController *popoverController; UIPopoverController *popoverController;
UIToolbar *bottomPlaceholderToolbar; UIToolbar *bottomPlaceholderToolbar;
UIBarButtonItem *buttonBack;
} }
@property (nonatomic, strong) UIActivityIndicatorView *loadingIndicator; @property (nonatomic, strong) UIActivityIndicatorView *loadingIndicator;
@ -36,6 +38,7 @@
@property (nonatomic) IBOutlet UIToolbar *toolbar; @property (nonatomic) IBOutlet UIToolbar *toolbar;
@property (nonatomic) IBOutlet UIBarButtonItem *buttonPrevious; @property (nonatomic) IBOutlet UIBarButtonItem *buttonPrevious;
@property (nonatomic) IBOutlet UIBarButtonItem *buttonNext; @property (nonatomic) IBOutlet UIBarButtonItem *buttonNext;
@property (nonatomic) UIBarButtonItem *buttonBack;
@property (nonatomic) IBOutlet UIBarButtonItem *activity; @property (nonatomic) IBOutlet UIBarButtonItem *activity;
@property (nonatomic) IBOutlet UIBarButtonItem *buttonAction; @property (nonatomic) IBOutlet UIBarButtonItem *buttonAction;
@property (nonatomic) IBOutlet UIView *feedTitleGradient; @property (nonatomic) IBOutlet UIView *feedTitleGradient;

View file

@ -39,6 +39,7 @@
@synthesize popoverController; @synthesize popoverController;
@synthesize fontSettingsButton; @synthesize fontSettingsButton;
@synthesize originalStoryButton; @synthesize originalStoryButton;
@synthesize buttonBack;
@synthesize bottomPlaceholderToolbar; @synthesize bottomPlaceholderToolbar;
@ -79,6 +80,11 @@
action:@selector(toggleFontSize:) action:@selector(toggleFontSize:)
]; ];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc]
initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(transitionFromFeedDetail)];
self.buttonBack = backButton;
self.originalStoryButton = originalButton; self.originalStoryButton = originalButton;
self.fontSettingsButton = fontSettings; self.fontSettingsButton = fontSettings;
@ -100,14 +106,6 @@
self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:originalButton, fontSettingsButton, nil]; self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:originalButton, fontSettingsButton, nil];
} else { } 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.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]; 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 { - (void)viewDidUnload {
[self setButtonNextStory:nil]; [self setButtonNextStory:nil];
[self setInnerView:nil]; [self setInnerView:nil];

View file

@ -38,7 +38,7 @@
{ {
[super viewDidLoad]; [super viewDidLoad];
// Do any additional setup after loading the view from its nib. // Do any additional setup after loading the view from its nib.
self.appDelegate = (NewsBlurAppDelegate *)[[UIApplication sharedApplication] delegate];
} }
- (void)viewDidUnload - (void)viewDidUnload

View file

@ -19,6 +19,8 @@
431B858115A23C6B00DCE497 /* ProfileBadge.m in Sources */ = {isa = PBXBuildFile; fileRef = 431B858015A23C6B00DCE497 /* ProfileBadge.m */; }; 431B858115A23C6B00DCE497 /* ProfileBadge.m in Sources */ = {isa = PBXBuildFile; fileRef = 431B858015A23C6B00DCE497 /* ProfileBadge.m */; };
432E29FB15BFBCA10006EA51 /* back.png in Resources */ = {isa = PBXBuildFile; fileRef = 432E29F915BFBCA10006EA51 /* back.png */; }; 432E29FB15BFBCA10006EA51 /* back.png in Resources */ = {isa = PBXBuildFile; fileRef = 432E29F915BFBCA10006EA51 /* back.png */; };
432E29FC15BFBCA10006EA51 /* back@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 432E29FA15BFBCA10006EA51 /* back@2x.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 */; }; 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 */; }; 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 */; }; 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 = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; 431B858015A23C6B00DCE497 /* ProfileBadge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = ProfileBadge.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
432E29F915BFBCA10006EA51 /* back.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = back.png; sourceTree = "<group>"; }; 432E29F915BFBCA10006EA51 /* back.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = back.png; sourceTree = "<group>"; };
432E29FA15BFBCA10006EA51 /* back@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "back@2x.png"; sourceTree = "<group>"; }; 432E29FA15BFBCA10006EA51 /* back@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "back@2x.png"; sourceTree = "<group>"; };
432E2A0115C079770006EA51 /* folder_white.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = folder_white.png; sourceTree = "<group>"; };
432E2A0215C079770006EA51 /* folder_white@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "folder_white@2x.png"; sourceTree = "<group>"; };
433323B6158901A40025064D /* fountain_pen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = fountain_pen.png; sourceTree = "<group>"; }; 433323B6158901A40025064D /* fountain_pen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = fountain_pen.png; sourceTree = "<group>"; };
433323B7158901A40025064D /* fountain_pen@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "fountain_pen@2x.png"; sourceTree = "<group>"; }; 433323B7158901A40025064D /* fountain_pen@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "fountain_pen@2x.png"; sourceTree = "<group>"; };
433323BA158901C10025064D /* login_background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = login_background.png; sourceTree = "<group>"; }; 433323BA158901C10025064D /* login_background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = login_background.png; sourceTree = "<group>"; };
@ -970,6 +974,8 @@
431B857615A132B600DCE497 /* Images */ = { 431B857615A132B600DCE497 /* Images */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
432E2A0115C079770006EA51 /* folder_white.png */,
432E2A0215C079770006EA51 /* folder_white@2x.png */,
432E29F915BFBCA10006EA51 /* back.png */, 432E29F915BFBCA10006EA51 /* back.png */,
432E29FA15BFBCA10006EA51 /* back@2x.png */, 432E29FA15BFBCA10006EA51 /* back@2x.png */,
43A3912315B733CA0074B212 /* dashboard_style.png */, 43A3912315B733CA0074B212 /* dashboard_style.png */,
@ -1806,6 +1812,8 @@
43DACC4015BDE47F004A938B /* StoryDetailContainerViewController.xib in Resources */, 43DACC4015BDE47F004A938B /* StoryDetailContainerViewController.xib in Resources */,
432E29FB15BFBCA10006EA51 /* back.png in Resources */, 432E29FB15BFBCA10006EA51 /* back.png in Resources */,
432E29FC15BFBCA10006EA51 /* back@2x.png in Resources */, 432E29FC15BFBCA10006EA51 /* back@2x.png in Resources */,
432E2A0315C079770006EA51 /* folder_white.png in Resources */,
432E2A0415C079770006EA51 /* folder_white@2x.png in Resources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };

View file

@ -4885,7 +4885,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
<reference key="dict.values" ref="0"/> <reference key="dict.values" ref="0"/>
</object> </object>
<nil key="sourceID"/> <nil key="sourceID"/>
<int key="maxID">98</int> <int key="maxID">99</int>
</object> </object>
<object class="IBClassDescriber" key="IBDocument.Classes"> <object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions"> <object class="NSMutableArray" key="referencedPartialClassDescriptions">
@ -7091,6 +7091,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
<string>buttonNext</string> <string>buttonNext</string>
<string>buttonNextStory</string> <string>buttonNextStory</string>
<string>buttonPrevious</string> <string>buttonPrevious</string>
<string>buttonProgressView</string>
<string>feedTitleGradient</string> <string>feedTitleGradient</string>
<string>fontSettingsButton</string> <string>fontSettingsButton</string>
<string>innerView</string> <string>innerView</string>
@ -7108,6 +7109,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
<string>UIBarButtonItem</string> <string>UIBarButtonItem</string>
<string>UIBarButtonItem</string> <string>UIBarButtonItem</string>
<string>UIBarButtonItem</string> <string>UIBarButtonItem</string>
<string>UIBarButtonItem</string>
<string>UIView</string> <string>UIView</string>
<string>UIBarButtonItem</string> <string>UIBarButtonItem</string>
<string>UIView</string> <string>UIView</string>
@ -7128,6 +7130,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
<string>buttonNext</string> <string>buttonNext</string>
<string>buttonNextStory</string> <string>buttonNextStory</string>
<string>buttonPrevious</string> <string>buttonPrevious</string>
<string>buttonProgressView</string>
<string>feedTitleGradient</string> <string>feedTitleGradient</string>
<string>fontSettingsButton</string> <string>fontSettingsButton</string>
<string>innerView</string> <string>innerView</string>
@ -7166,6 +7169,10 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
<string key="name">buttonPrevious</string> <string key="name">buttonPrevious</string>
<string key="candidateClassName">UIBarButtonItem</string> <string key="candidateClassName">UIBarButtonItem</string>
</object> </object>
<object class="IBToOneOutletInfo">
<string key="name">buttonProgressView</string>
<string key="candidateClassName">UIBarButtonItem</string>
</object>
<object class="IBToOneOutletInfo"> <object class="IBToOneOutletInfo">
<string key="name">feedTitleGradient</string> <string key="name">feedTitleGradient</string>
<string key="candidateClassName">UIView</string> <string key="candidateClassName">UIView</string>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB