mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-08-31 21:41:33 +00:00
adding in popover controllers to master container VC
This commit is contained in:
parent
940393cf47
commit
3a00070535
14 changed files with 239 additions and 98 deletions
|
@ -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;
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#import <QuartzCore/QuartzCore.h>
|
||||
#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];
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
@class NewsBlurAppDelegate;
|
||||
|
||||
@interface NBContainerViewController : UIViewController {
|
||||
@interface NBContainerViewController : UIViewController <UIPopoverControllerDelegate> {
|
||||
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
|
||||
|
|
|
@ -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
|
|
@ -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];
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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];
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
|
@ -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;
|
||||
};
|
||||
|
|
|
@ -4885,7 +4885,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
|
|||
<reference key="dict.values" ref="0"/>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">98</int>
|
||||
<int key="maxID">99</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
|
@ -7091,6 +7091,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
|
|||
<string>buttonNext</string>
|
||||
<string>buttonNextStory</string>
|
||||
<string>buttonPrevious</string>
|
||||
<string>buttonProgressView</string>
|
||||
<string>feedTitleGradient</string>
|
||||
<string>fontSettingsButton</string>
|
||||
<string>innerView</string>
|
||||
|
@ -7108,6 +7109,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
|
|||
<string>UIBarButtonItem</string>
|
||||
<string>UIBarButtonItem</string>
|
||||
<string>UIBarButtonItem</string>
|
||||
<string>UIBarButtonItem</string>
|
||||
<string>UIView</string>
|
||||
<string>UIBarButtonItem</string>
|
||||
<string>UIView</string>
|
||||
|
@ -7128,6 +7130,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
|
|||
<string>buttonNext</string>
|
||||
<string>buttonNextStory</string>
|
||||
<string>buttonPrevious</string>
|
||||
<string>buttonProgressView</string>
|
||||
<string>feedTitleGradient</string>
|
||||
<string>fontSettingsButton</string>
|
||||
<string>innerView</string>
|
||||
|
@ -7166,6 +7169,10 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
|
|||
<string key="name">buttonPrevious</string>
|
||||
<string key="candidateClassName">UIBarButtonItem</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">buttonProgressView</string>
|
||||
<string key="candidateClassName">UIBarButtonItem</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">feedTitleGradient</string>
|
||||
<string key="candidateClassName">UIView</string>
|
||||
|
|
BIN
media/ios/Resources/folder_white.png
Normal file
BIN
media/ios/Resources/folder_white.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
BIN
media/ios/Resources/folder_white@2x.png
Normal file
BIN
media/ios/Resources/folder_white@2x.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.8 KiB |
Loading…
Add table
Reference in a new issue