mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-09-18 21:50:56 +00:00
commit
9c6a26d508
18 changed files with 274 additions and 931 deletions
|
@ -527,7 +527,7 @@ static const CGFloat kFolderTitleHeight = 36.0;
|
|||
NSUInteger count = self.tableView.indexPathsForSelectedRows.count;
|
||||
NSString *title = count == 1 ? @"Delete selected site?" : [NSString stringWithFormat:@"Delete %@ sites?", @(count)];
|
||||
|
||||
[viewController addTitle:title iconName:@"menu_icn_delete.png" selectionShouldDismiss:YES handler:^{
|
||||
[viewController addTitle:title iconName:@"menu_icn_delete.png" destructive:YES selectionShouldDismiss:YES handler:^{
|
||||
[self performDeleteFeeds];
|
||||
}];
|
||||
|
||||
|
|
|
@ -1,41 +0,0 @@
|
|||
//
|
||||
// FeedDetailMenuViewController.h
|
||||
// NewsBlur
|
||||
//
|
||||
// Created by Samuel Clay on 10/10/12.
|
||||
// Copyright (c) 2012 NewsBlur. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@class NewsBlurAppDelegate;
|
||||
|
||||
@interface FeedDetailMenuViewController : UIViewController
|
||||
<UITableViewDelegate,
|
||||
UITableViewDataSource> {
|
||||
NewsBlurAppDelegate *appDelegate;
|
||||
}
|
||||
|
||||
@property (nonatomic, strong) NSArray *menuOptions;
|
||||
@property (nonatomic) IBOutlet NewsBlurAppDelegate *appDelegate;
|
||||
@property (nonatomic) IBOutlet UITableView *menuTableView;
|
||||
@property (nonatomic) IBOutlet UISegmentedControl *orderSegmentedControl;
|
||||
@property (nonatomic) IBOutlet UISegmentedControl *readFilterSegmentedControl;
|
||||
@property (nonatomic) IBOutlet UISegmentedControl *previewSizeSegment;
|
||||
@property (nonatomic) IBOutlet UISegmentedControl *imageSizeSegment;
|
||||
@property (nonatomic) IBOutlet UISegmentedControl *fontSizeSegment;
|
||||
@property (nonatomic) IBOutlet UISegmentedControl *infrequentSegmentedControl;
|
||||
@property (nonatomic) IBOutlet UISegmentedControl *themeSegmentedControl;
|
||||
|
||||
- (void)buildMenuOptions;
|
||||
- (UITableViewCell *)makeOrderCell;
|
||||
- (UITableViewCell *)makeReadFilterCell;
|
||||
- (IBAction)changeOrder:(id)sender;
|
||||
- (IBAction)changeReadFilter:(id)sender;
|
||||
- (IBAction)changePreviewSize:(id)sender;
|
||||
- (IBAction)changeImageSize:(id)sender;
|
||||
- (IBAction)changeFontSize:(id)sender;
|
||||
- (IBAction)changeInfrequent:(id)sender;
|
||||
- (IBAction)changeTheme:(id)sender;
|
||||
|
||||
@end
|
|
@ -1,666 +0,0 @@
|
|||
//
|
||||
// FeedDetailMenuViewController.m
|
||||
// NewsBlur
|
||||
//
|
||||
// Created by Samuel Clay on 10/10/12.
|
||||
// Copyright (c) 2012 NewsBlur. All rights reserved.
|
||||
//
|
||||
|
||||
#import "FeedDetailMenuViewController.h"
|
||||
#import "NewsBlurAppDelegate.h"
|
||||
#import "MBProgressHUD.h"
|
||||
#import "NBContainerViewController.h"
|
||||
#import "FeedDetailViewController.h"
|
||||
#import "MenuTableViewCell.h"
|
||||
#import "StoriesCollection.h"
|
||||
|
||||
@implementation FeedDetailMenuViewController
|
||||
|
||||
#define kMenuOptionHeight 38
|
||||
|
||||
@synthesize appDelegate;
|
||||
@synthesize menuOptions;
|
||||
@synthesize menuTableView;
|
||||
@synthesize orderSegmentedControl;
|
||||
@synthesize readFilterSegmentedControl;
|
||||
@synthesize infrequentSegmentedControl;
|
||||
|
||||
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
|
||||
{
|
||||
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
|
||||
if (self) {
|
||||
// Custom initialization
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
self.menuTableView.backgroundColor = UIColorFromRGB(0xECEEEA);
|
||||
self.menuTableView.separatorColor = UIColorFromRGB(0x909090);
|
||||
}
|
||||
|
||||
- (void)viewDidUnload
|
||||
{
|
||||
[super viewDidUnload];
|
||||
// Release any retained subviews of the main view.
|
||||
// e.g. self.myOutlet = nil;
|
||||
self.menuOptions = nil;
|
||||
self.menuTableView = nil;
|
||||
}
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
[super viewWillAppear:animated];
|
||||
|
||||
[self.menuTableView reloadData];
|
||||
|
||||
[orderSegmentedControl
|
||||
setTitleTextAttributes:@{NSFontAttributeName:
|
||||
[UIFont fontWithName:@"Helvetica-Bold" size:11.0f]}
|
||||
forState:UIControlStateNormal];
|
||||
[orderSegmentedControl setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:0];
|
||||
[orderSegmentedControl setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:1];
|
||||
[orderSegmentedControl setSelectedSegmentIndex:0];
|
||||
if ([appDelegate.storiesCollection.activeOrder isEqualToString:@"oldest"]) {
|
||||
[orderSegmentedControl setSelectedSegmentIndex:1];
|
||||
}
|
||||
|
||||
[readFilterSegmentedControl
|
||||
setTitleTextAttributes:@{NSFontAttributeName:
|
||||
[UIFont fontWithName:@"Helvetica-Bold" size:11.0f]}
|
||||
forState:UIControlStateNormal];
|
||||
[readFilterSegmentedControl setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:0];
|
||||
[readFilterSegmentedControl setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:1];
|
||||
[readFilterSegmentedControl setSelectedSegmentIndex:0];
|
||||
if ([appDelegate.storiesCollection.activeReadFilter isEqualToString:@"unread"]) {
|
||||
[readFilterSegmentedControl setSelectedSegmentIndex:1];
|
||||
}
|
||||
|
||||
NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
|
||||
|
||||
[self.previewSizeSegment
|
||||
setTitleTextAttributes:@{NSFontAttributeName:
|
||||
[UIFont fontWithName:@"Helvetica-Bold" size:11.0f]}
|
||||
forState:UIControlStateNormal];
|
||||
if([userPreferences stringForKey:@"story_list_preview_text_size"]){
|
||||
NSString *previewSize = [userPreferences stringForKey:@"story_list_preview_text_size"];
|
||||
if ([previewSize isEqualToString:@"title"]) {
|
||||
[self.previewSizeSegment setSelectedSegmentIndex:0];
|
||||
} else if ([previewSize isEqualToString:@"short"]) {
|
||||
[self.previewSizeSegment setSelectedSegmentIndex:1];
|
||||
} else if ([previewSize isEqualToString:@"medium"]) {
|
||||
[self.previewSizeSegment setSelectedSegmentIndex:2];
|
||||
} else if ([previewSize isEqualToString:@"long"]) {
|
||||
[self.previewSizeSegment setSelectedSegmentIndex:3];
|
||||
}
|
||||
}
|
||||
|
||||
[self.imageSizeSegment
|
||||
setTitleTextAttributes:@{NSFontAttributeName:
|
||||
[UIFont fontWithName:@"Helvetica-Bold" size:11.0f]}
|
||||
forState:UIControlStateNormal];
|
||||
if([userPreferences stringForKey:@"story_list_preview_images_size"]){
|
||||
NSString *imagesSize = [userPreferences stringForKey:@"story_list_preview_images_size"];
|
||||
if ([imagesSize isEqualToString:@"none"]) {
|
||||
[self.imageSizeSegment setSelectedSegmentIndex:0];
|
||||
} else if ([imagesSize isEqualToString:@"small"]) {
|
||||
[self.imageSizeSegment setSelectedSegmentIndex:1];
|
||||
} else if ([imagesSize isEqualToString:@"large"]) {
|
||||
[self.imageSizeSegment setSelectedSegmentIndex:2];
|
||||
}
|
||||
}
|
||||
|
||||
[self.fontSizeSegment
|
||||
setTitleTextAttributes:@{NSFontAttributeName:
|
||||
[UIFont fontWithName:@"Helvetica-Bold" size:11.0f]}
|
||||
forState:UIControlStateNormal];
|
||||
if([userPreferences stringForKey:@"feed_list_font_size"]){
|
||||
NSString *fontSize = [userPreferences stringForKey:@"feed_list_font_size"];
|
||||
if ([fontSize isEqualToString:@"xs"]) {
|
||||
[self.fontSizeSegment setSelectedSegmentIndex:0];
|
||||
} else if ([fontSize isEqualToString:@"small"]) {
|
||||
[self.fontSizeSegment setSelectedSegmentIndex:1];
|
||||
} else if ([fontSize isEqualToString:@"medium"]) {
|
||||
[self.fontSizeSegment setSelectedSegmentIndex:2];
|
||||
} else if ([fontSize isEqualToString:@"large"]) {
|
||||
[self.fontSizeSegment setSelectedSegmentIndex:3];
|
||||
} else if ([fontSize isEqualToString:@"xl"]) {
|
||||
[self.fontSizeSegment setSelectedSegmentIndex:4];
|
||||
}
|
||||
}
|
||||
|
||||
[self.infrequentSegmentedControl
|
||||
setTitleTextAttributes:@{NSFontAttributeName:
|
||||
[UIFont fontWithName:@"Helvetica-Bold" size:11.0f]}
|
||||
forState:UIControlStateNormal];
|
||||
if([userPreferences stringForKey:@"infrequent_stories_per_month"]){
|
||||
NSInteger storiesPerMonth = [userPreferences integerForKey:@"infrequent_stories_per_month"];
|
||||
if (storiesPerMonth == 5) {
|
||||
[self.infrequentSegmentedControl setSelectedSegmentIndex:0];
|
||||
} else if (storiesPerMonth == 15) {
|
||||
[self.infrequentSegmentedControl setSelectedSegmentIndex:1];
|
||||
} else if (storiesPerMonth == 30) {
|
||||
[self.infrequentSegmentedControl setSelectedSegmentIndex:2];
|
||||
} else if (storiesPerMonth == 60) {
|
||||
[self.infrequentSegmentedControl setSelectedSegmentIndex:3];
|
||||
} else if (storiesPerMonth == 90) {
|
||||
[self.infrequentSegmentedControl setSelectedSegmentIndex:4];
|
||||
}
|
||||
}
|
||||
|
||||
NSString *theme = [ThemeManager themeManager].theme;
|
||||
if ([theme isEqualToString:@"sepia"]) {
|
||||
self.themeSegmentedControl.selectedSegmentIndex = 1;
|
||||
} else if ([theme isEqualToString:@"medium"]) {
|
||||
self.themeSegmentedControl.selectedSegmentIndex = 2;
|
||||
} else if ([theme isEqualToString:@"dark"]) {
|
||||
self.themeSegmentedControl.selectedSegmentIndex = 3;
|
||||
} else {
|
||||
self.themeSegmentedControl.selectedSegmentIndex = 0;
|
||||
}
|
||||
|
||||
if ([self isInfrequent]) {
|
||||
self.infrequentSegmentedControl.hidden = NO;
|
||||
} else {
|
||||
self.infrequentSegmentedControl.hidden = YES;
|
||||
}
|
||||
|
||||
self.navigationController.preferredContentSize = CGSizeMake(260, 38 * [self menuCount]);
|
||||
}
|
||||
|
||||
- (void)viewDidAppear:(BOOL)animated {
|
||||
[super viewDidAppear:animated];
|
||||
|
||||
self.navigationController.preferredContentSize = CGSizeMake(260, 38 * [self menuCount]);
|
||||
self.menuTableView.scrollEnabled = self.navigationController.preferredContentSize.height > self.view.frame.size.height;
|
||||
}
|
||||
|
||||
// allow keyboard comands
|
||||
- (BOOL)canBecomeFirstResponder {
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (void)buildMenuOptions {
|
||||
BOOL everything = appDelegate.storiesCollection.isRiverView &&
|
||||
[appDelegate.storiesCollection.activeFolder isEqualToString:@"everything"];
|
||||
BOOL infrequent = [self isInfrequent];
|
||||
BOOL read = appDelegate.storiesCollection.isReadView;
|
||||
BOOL saved = appDelegate.storiesCollection.isSavedView;
|
||||
|
||||
NSMutableArray *options = [NSMutableArray array];
|
||||
|
||||
// NSString *title = appDelegate.storiesCollection.isRiverView ?
|
||||
// appDelegate.storiesCollection.activeFolder :
|
||||
// [appDelegate.storiesCollection.activeFeed objectForKey:@"feed_title"];
|
||||
|
||||
if (!everything && !infrequent && !read && !saved) {
|
||||
NSString *deleteText = [NSString stringWithFormat:@"Delete %@",
|
||||
appDelegate.storiesCollection.isRiverView ?
|
||||
@"this entire folder" :
|
||||
@"this site"];
|
||||
[options addObject:[deleteText uppercaseString]];
|
||||
[options addObject:[@"Move to another folder" uppercaseString]];
|
||||
if (appDelegate.storiesCollection.isRiverView) {
|
||||
[options addObject:[@"Rename this folder" uppercaseString]];
|
||||
}
|
||||
}
|
||||
|
||||
if (!appDelegate.storiesCollection.isRiverView && !infrequent && !saved && !read) {
|
||||
[options addObject:[@"Rename this site" uppercaseString]];
|
||||
[options addObject:[@"Mute this site" uppercaseString]];
|
||||
[options addObject:[@"Train this site" uppercaseString]];
|
||||
[options addObject:[@"Notifications" uppercaseString]];
|
||||
[options addObject:[@"Insta-fetch stories" uppercaseString]];
|
||||
}
|
||||
|
||||
self.menuOptions = options;
|
||||
}
|
||||
|
||||
- (BOOL)isRiver {
|
||||
return appDelegate.storiesCollection.isSocialRiverView ||
|
||||
appDelegate.storiesCollection.isSocialView ||
|
||||
appDelegate.storiesCollection.isSavedView ||
|
||||
appDelegate.storiesCollection.isReadView;
|
||||
}
|
||||
|
||||
- (BOOL)isInfrequent {
|
||||
return appDelegate.storiesCollection.isRiverView &&
|
||||
[appDelegate.storiesCollection.activeFolder isEqualToString:@"infrequent"];
|
||||
}
|
||||
|
||||
- (NSUInteger)menuCount {
|
||||
return [self.menuOptions count] + ([self isRiver] ? 5 : 6) + ([self isInfrequent] ? 1 : 0);
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark - Table view data source
|
||||
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
|
||||
{
|
||||
[self buildMenuOptions];
|
||||
|
||||
return [self menuCount];
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
static NSString *CellIndentifier = @"Cell";
|
||||
|
||||
if (indexPath.row == [self.menuOptions count]) {
|
||||
return [self makeOrderCell];
|
||||
} else if ([self isInfrequent]) {
|
||||
if (indexPath.row == [self.menuOptions count] + 1) {
|
||||
return [self makeReadFilterCell];
|
||||
} else if (indexPath.row == [self.menuOptions count] + 2) {
|
||||
return [self makePreviewSizeTableCell];
|
||||
} else if (indexPath.row == [self.menuOptions count] + 3) {
|
||||
return [self makeImageSizeTableCell];
|
||||
} else if (indexPath.row == [self.menuOptions count] + 4) {
|
||||
return [self makeFontSizeTableCell];
|
||||
} else if (indexPath.row == [self.menuOptions count] + 5) {
|
||||
return [self makeInfrequentTableCell];
|
||||
} else if (indexPath.row == [self.menuOptions count] + 5) {
|
||||
return [self makeThemeTableCell];
|
||||
}
|
||||
} else if (![self isRiver]) {
|
||||
if (indexPath.row == [self.menuOptions count] + 1) {
|
||||
return [self makeReadFilterCell];
|
||||
} else if (indexPath.row == [self.menuOptions count] + 2) {
|
||||
return [self makePreviewSizeTableCell];
|
||||
} else if (indexPath.row == [self.menuOptions count] + 3) {
|
||||
return [self makeImageSizeTableCell];
|
||||
} else if (indexPath.row == [self.menuOptions count] + 4) {
|
||||
return [self makeFontSizeTableCell];
|
||||
} else if (indexPath.row == [self.menuOptions count] + 5) {
|
||||
return [self makeThemeTableCell];
|
||||
}
|
||||
} else if ([self isRiver]) {
|
||||
if (indexPath.row == [self.menuOptions count] + 1) {
|
||||
return [self makePreviewSizeTableCell];
|
||||
} else if (indexPath.row == [self.menuOptions count] + 2) {
|
||||
return [self makeImageSizeTableCell];
|
||||
} else if (indexPath.row == [self.menuOptions count] + 3) {
|
||||
return [self makeFontSizeTableCell];
|
||||
} else if (indexPath.row == [self.menuOptions count] + 4) {
|
||||
return [self makeThemeTableCell];
|
||||
}
|
||||
}
|
||||
|
||||
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIndentifier];
|
||||
|
||||
if (cell == nil) {
|
||||
cell = [[MenuTableViewCell alloc]
|
||||
initWithStyle:UITableViewCellStyleDefault
|
||||
reuseIdentifier:CellIndentifier];
|
||||
}
|
||||
|
||||
cell.textLabel.text = [self.menuOptions objectAtIndex:[indexPath row]];
|
||||
|
||||
if (indexPath.row == 0) {
|
||||
cell.imageView.image = [UIImage imageNamed:@"menu_icn_delete.png"];
|
||||
} else if (indexPath.row == 1) {
|
||||
cell.imageView.image = [UIImage imageNamed:@"menu_icn_move.png"];
|
||||
} else if (indexPath.row == 2) {
|
||||
cell.imageView.image = [UIImage imageNamed:@"menu_icn_rename.png"];
|
||||
} else if (indexPath.row == 3) {
|
||||
cell.imageView.image = [UIImage imageNamed:@"menu_icn_mute.png"];
|
||||
} else if (indexPath.row == 4) {
|
||||
cell.imageView.image = [UIImage imageNamed:@"menu_icn_train.png"];
|
||||
} else if (indexPath.row == 5) {
|
||||
cell.imageView.image = [UIImage imageNamed:@"menu_icn_notifications.png"];
|
||||
} else if (indexPath.row == 6) {
|
||||
cell.imageView.image = [UIImage imageNamed:@"menu_icn_fetch.png"];
|
||||
}
|
||||
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
return kMenuOptionHeight;
|
||||
}
|
||||
|
||||
|
||||
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
if (indexPath.row >= [menuOptions count]) {
|
||||
return nil;
|
||||
}
|
||||
return indexPath;
|
||||
}
|
||||
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
BOOL shouldHide = YES;
|
||||
|
||||
if (indexPath.row == 0) {
|
||||
[appDelegate.feedDetailViewController confirmDeleteSite];
|
||||
shouldHide = NO;
|
||||
} else if (indexPath.row == 1) {
|
||||
[appDelegate.feedDetailViewController openMoveView];
|
||||
shouldHide = NO;
|
||||
} else if (indexPath.row == 2) {
|
||||
[appDelegate.feedDetailViewController openRenameSite];
|
||||
} else if (indexPath.row == 3) {
|
||||
[appDelegate.feedDetailViewController confirmMuteSite];
|
||||
shouldHide = NO;
|
||||
} else if (indexPath.row == 4) {
|
||||
[appDelegate.feedDetailViewController openTrainSite];
|
||||
} else if (indexPath.row == 5) {
|
||||
[appDelegate.feedDetailViewController
|
||||
openNotificationsWithFeed:[NSString stringWithFormat:@"%@", [appDelegate.storiesCollection.activeFeed objectForKey:@"id"]]];
|
||||
} else if (indexPath.row == 6) {
|
||||
[appDelegate.feedDetailViewController instafetchFeed];
|
||||
}
|
||||
|
||||
if (shouldHide) {
|
||||
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
|
||||
[self.appDelegate hidePopover];
|
||||
} else {
|
||||
[self.appDelegate hidePopoverAnimated:YES];
|
||||
}
|
||||
}
|
||||
|
||||
[tableView deselectRowAtIndexPath:indexPath animated:YES];
|
||||
}
|
||||
|
||||
- (UITableViewCell *)makeOrderCell {
|
||||
UITableViewCell *cell = [[UITableViewCell alloc] init];
|
||||
cell.frame = CGRectMake(0, 0, 240, kMenuOptionHeight);
|
||||
cell.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||
cell.separatorInset = UIEdgeInsetsZero;
|
||||
cell.backgroundColor = UIColorFromRGB(0xffffff);
|
||||
|
||||
orderSegmentedControl.frame = CGRectMake(8, 7, cell.frame.size.width - 8*2,
|
||||
kMenuOptionHeight - 7*2);
|
||||
[orderSegmentedControl setTitle:[@"Newest first" uppercaseString] forSegmentAtIndex:0];
|
||||
[orderSegmentedControl setTitle:[@"Oldest" uppercaseString] forSegmentAtIndex:1];
|
||||
self.orderSegmentedControl.backgroundColor = UIColorFromRGB(0xeeeeee);
|
||||
[self.orderSegmentedControl setTitleTextAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"Helvetica-Bold" size:11.0f]} forState:UIControlStateNormal];
|
||||
[self.orderSegmentedControl setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:0];
|
||||
[self.orderSegmentedControl setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:1];
|
||||
|
||||
[cell addSubview:orderSegmentedControl];
|
||||
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (UITableViewCell *)makeReadFilterCell {
|
||||
UITableViewCell *cell = [[UITableViewCell alloc] init];
|
||||
cell.frame = CGRectMake(0, 0, 240, kMenuOptionHeight);
|
||||
cell.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||
cell.separatorInset = UIEdgeInsetsZero;
|
||||
cell.backgroundColor = UIColorFromRGB(0xffffff);
|
||||
|
||||
readFilterSegmentedControl.frame = CGRectMake(8, 7, cell.frame.size.width - 8*2,
|
||||
kMenuOptionHeight - 7*2);
|
||||
[readFilterSegmentedControl setTitle:[@"All stories" uppercaseString] forSegmentAtIndex:0];
|
||||
[readFilterSegmentedControl setTitle:[@"Unread only" uppercaseString] forSegmentAtIndex:1];
|
||||
self.readFilterSegmentedControl.backgroundColor = UIColorFromRGB(0xeeeeee);
|
||||
[self.readFilterSegmentedControl setTitleTextAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"Helvetica-Bold" size:11.0f]} forState:UIControlStateNormal];
|
||||
[self.readFilterSegmentedControl setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:0];
|
||||
[self.readFilterSegmentedControl setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:1];
|
||||
|
||||
[cell addSubview:readFilterSegmentedControl];
|
||||
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (UITableViewCell *)makePreviewSizeTableCell {
|
||||
UITableViewCell *cell = [[UITableViewCell alloc] init];
|
||||
cell.frame = CGRectMake(0, 0, 240, kMenuOptionHeight);
|
||||
cell.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||
cell.separatorInset = UIEdgeInsetsZero;
|
||||
cell.backgroundColor = UIColorFromRGB(0xffffff);
|
||||
|
||||
self.previewSizeSegment.frame = CGRectMake(8, 7, cell.frame.size.width - 8*2, kMenuOptionHeight - 7*2);
|
||||
[self.previewSizeSegment setTitle:[@"Title" uppercaseString] forSegmentAtIndex:0];
|
||||
[self.previewSizeSegment setTitle:@"1" forSegmentAtIndex:1];
|
||||
[self.previewSizeSegment setTitle:@"2" forSegmentAtIndex:2];
|
||||
[self.previewSizeSegment setTitle:@"3" forSegmentAtIndex:3];
|
||||
self.previewSizeSegment.backgroundColor = UIColorFromRGB(0xeeeeee);
|
||||
[self.previewSizeSegment setTitleTextAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"Helvetica-Bold" size:11.0f]} forState:UIControlStateNormal];
|
||||
[self.previewSizeSegment setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:0];
|
||||
[self.previewSizeSegment setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:1];
|
||||
[self.previewSizeSegment setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:2];
|
||||
[self.previewSizeSegment setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:3];
|
||||
|
||||
[cell addSubview:self.previewSizeSegment];
|
||||
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (UITableViewCell *)makeImageSizeTableCell {
|
||||
UITableViewCell *cell = [[UITableViewCell alloc] init];
|
||||
cell.frame = CGRectMake(0, 0, 240, kMenuOptionHeight);
|
||||
cell.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||
cell.separatorInset = UIEdgeInsetsZero;
|
||||
cell.backgroundColor = UIColorFromRGB(0xffffff);
|
||||
|
||||
self.imageSizeSegment.frame = CGRectMake(8, 7, cell.frame.size.width - 8*2, kMenuOptionHeight - 7*2);
|
||||
[self.imageSizeSegment setTitle:[@"No Image" uppercaseString] forSegmentAtIndex:0];
|
||||
[self.imageSizeSegment setTitle:[@"Small" uppercaseString] forSegmentAtIndex:1];
|
||||
[self.imageSizeSegment setTitle:[@"Large" uppercaseString] forSegmentAtIndex:2];
|
||||
self.imageSizeSegment.backgroundColor = UIColorFromRGB(0xeeeeee);
|
||||
[self.imageSizeSegment setTitleTextAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"Helvetica-Bold" size:11.0f]} forState:UIControlStateNormal];
|
||||
[self.imageSizeSegment setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:0];
|
||||
[self.imageSizeSegment setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:1];
|
||||
[self.imageSizeSegment setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:2];
|
||||
|
||||
[cell addSubview:self.imageSizeSegment];
|
||||
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (UITableViewCell *)makeFontSizeTableCell {
|
||||
UITableViewCell *cell = [[UITableViewCell alloc] init];
|
||||
cell.frame = CGRectMake(0, 0, 240, kMenuOptionHeight);
|
||||
cell.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||
cell.separatorInset = UIEdgeInsetsZero;
|
||||
cell.backgroundColor = UIColorFromRGB(0xffffff);
|
||||
|
||||
self.fontSizeSegment.frame = CGRectMake(8, 7, cell.frame.size.width - 8*2, kMenuOptionHeight - 7*2);
|
||||
[self.fontSizeSegment setTitle:@"XS" forSegmentAtIndex:0];
|
||||
[self.fontSizeSegment setTitle:@"S" forSegmentAtIndex:1];
|
||||
[self.fontSizeSegment setTitle:@"M" forSegmentAtIndex:2];
|
||||
[self.fontSizeSegment setTitle:@"L" forSegmentAtIndex:3];
|
||||
[self.fontSizeSegment setTitle:@"XL" forSegmentAtIndex:4];
|
||||
self.fontSizeSegment.backgroundColor = UIColorFromRGB(0xeeeeee);
|
||||
[self.fontSizeSegment setTitleTextAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"Helvetica-Bold" size:11.0f]} forState:UIControlStateNormal];
|
||||
[self.fontSizeSegment setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:0];
|
||||
[self.fontSizeSegment setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:1];
|
||||
[self.fontSizeSegment setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:2];
|
||||
[self.fontSizeSegment setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:3];
|
||||
[self.fontSizeSegment setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:4];
|
||||
|
||||
[cell addSubview:self.fontSizeSegment];
|
||||
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (UITableViewCell *)makeInfrequentTableCell {
|
||||
UITableViewCell *cell = [[UITableViewCell alloc] init];
|
||||
cell.frame = CGRectMake(0, 0, 240, kMenuOptionHeight);
|
||||
cell.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||
cell.separatorInset = UIEdgeInsetsZero;
|
||||
cell.backgroundColor = UIColorFromRGB(0xffffff);
|
||||
|
||||
self.infrequentSegmentedControl.frame = CGRectMake(8, 7, cell.frame.size.width - 8*2, kMenuOptionHeight - 7*2);
|
||||
[self.infrequentSegmentedControl setTitle:@"5" forSegmentAtIndex:0];
|
||||
[self.infrequentSegmentedControl setTitle:@"15" forSegmentAtIndex:1];
|
||||
[self.infrequentSegmentedControl setTitle:@"30" forSegmentAtIndex:2];
|
||||
[self.infrequentSegmentedControl setTitle:@"60" forSegmentAtIndex:3];
|
||||
[self.infrequentSegmentedControl setTitle:@"90" forSegmentAtIndex:4];
|
||||
self.infrequentSegmentedControl.backgroundColor = UIColorFromRGB(0xeeeeee);
|
||||
[self.infrequentSegmentedControl setTitleTextAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"Helvetica-Bold" size:11.0f]} forState:UIControlStateNormal];
|
||||
[self.infrequentSegmentedControl setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:0];
|
||||
[self.infrequentSegmentedControl setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:1];
|
||||
[self.infrequentSegmentedControl setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:2];
|
||||
[self.infrequentSegmentedControl setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:3];
|
||||
[self.infrequentSegmentedControl setContentOffset:CGSizeMake(0, 1) forSegmentAtIndex:4];
|
||||
|
||||
[cell addSubview:self.infrequentSegmentedControl];
|
||||
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (UITableViewCell *)makeThemeTableCell {
|
||||
UITableViewCell *cell = [[UITableViewCell alloc] init];
|
||||
cell.frame = CGRectMake(0, 0, 240, kMenuOptionHeight);
|
||||
cell.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||
cell.separatorInset = UIEdgeInsetsZero;
|
||||
cell.backgroundColor = UIColorFromRGB(0xffffff);
|
||||
|
||||
UIImage *lightImage = [self themeImageWithName:@"theme_color_light" selected:self.themeSegmentedControl.selectedSegmentIndex == 0];
|
||||
UIImage *sepiaImage = [self themeImageWithName:@"theme_color_sepia" selected:self.themeSegmentedControl.selectedSegmentIndex == 1];
|
||||
UIImage *mediumImage = [self themeImageWithName:@"theme_color_medium" selected:self.themeSegmentedControl.selectedSegmentIndex == 2];
|
||||
UIImage *darkImage = [self themeImageWithName:@"theme_color_dark" selected:self.themeSegmentedControl.selectedSegmentIndex == 3];
|
||||
|
||||
self.themeSegmentedControl.frame = CGRectMake(8, 4, cell.frame.size.width - 8*2, kMenuOptionHeight - 4*2);
|
||||
[self.themeSegmentedControl setImage:lightImage forSegmentAtIndex:0];
|
||||
[self.themeSegmentedControl setImage:sepiaImage forSegmentAtIndex:1];
|
||||
[self.themeSegmentedControl setImage:mediumImage forSegmentAtIndex:2];
|
||||
[self.themeSegmentedControl setImage:darkImage forSegmentAtIndex:3];
|
||||
|
||||
UIGraphicsBeginImageContextWithOptions(CGSizeMake(1, self.themeSegmentedControl.frame.size.height), NO, 0.0);
|
||||
UIImage *blankImage = UIGraphicsGetImageFromCurrentImageContext();
|
||||
UIGraphicsEndImageContext();
|
||||
|
||||
[self.themeSegmentedControl setDividerImage:blankImage forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
|
||||
self.themeSegmentedControl.tintColor = [UIColor clearColor];
|
||||
self.themeSegmentedControl.backgroundColor = [UIColor clearColor];
|
||||
|
||||
[cell addSubview:self.themeSegmentedControl];
|
||||
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (UIImage *)themeImageWithName:(NSString *)name selected:(BOOL)selected {
|
||||
if (selected) {
|
||||
name = [name stringByAppendingString:@"-sel"];
|
||||
}
|
||||
|
||||
return [[UIImage imageNamed:name] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
|
||||
}
|
||||
|
||||
- (IBAction)changeOrder:(id)sender {
|
||||
NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
|
||||
|
||||
if ([sender selectedSegmentIndex] == 0) {
|
||||
[userPreferences setObject:@"newest" forKey:[appDelegate.storiesCollection orderKey]];
|
||||
} else {
|
||||
[userPreferences setObject:@"oldest" forKey:[appDelegate.storiesCollection orderKey]];
|
||||
}
|
||||
|
||||
[userPreferences synchronize];
|
||||
|
||||
[appDelegate.feedDetailViewController reloadStories];
|
||||
}
|
||||
|
||||
- (IBAction)changeReadFilter:(id)sender {
|
||||
NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
|
||||
|
||||
if ([sender selectedSegmentIndex] == 0) {
|
||||
[userPreferences setObject:@"all" forKey:[appDelegate.storiesCollection readFilterKey]];
|
||||
} else {
|
||||
[userPreferences setObject:@"unread" forKey:[appDelegate.storiesCollection readFilterKey]];
|
||||
}
|
||||
|
||||
[userPreferences synchronize];
|
||||
|
||||
[appDelegate.feedDetailViewController reloadStories];
|
||||
|
||||
}
|
||||
|
||||
- (IBAction)changePreviewSize:(id)sender {
|
||||
NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
|
||||
if ([sender selectedSegmentIndex] == 0) {
|
||||
[userPreferences setObject:@"title" forKey:@"story_list_preview_text_size"];
|
||||
} else if ([sender selectedSegmentIndex] == 1) {
|
||||
[userPreferences setObject:@"short" forKey:@"story_list_preview_text_size"];
|
||||
} else if ([sender selectedSegmentIndex] == 2) {
|
||||
[userPreferences setObject:@"medium" forKey:@"story_list_preview_text_size"];
|
||||
} else if ([sender selectedSegmentIndex] == 3) {
|
||||
[userPreferences setObject:@"long" forKey:@"story_list_preview_text_size"];
|
||||
}
|
||||
[userPreferences synchronize];
|
||||
|
||||
[appDelegate resizePreviewSize];
|
||||
}
|
||||
|
||||
- (IBAction)changeImageSize:(id)sender {
|
||||
NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
|
||||
if ([sender selectedSegmentIndex] == 0) {
|
||||
[userPreferences setObject:@"none" forKey:@"story_list_preview_images_size"];
|
||||
} else if ([sender selectedSegmentIndex] == 1) {
|
||||
[userPreferences setObject:@"small" forKey:@"story_list_preview_images_size"];
|
||||
} else if ([sender selectedSegmentIndex] == 2) {
|
||||
[userPreferences setObject:@"large" forKey:@"story_list_preview_images_size"];
|
||||
}
|
||||
[userPreferences synchronize];
|
||||
|
||||
[appDelegate resizePreviewSize];
|
||||
}
|
||||
|
||||
- (IBAction)changeFontSize:(id)sender {
|
||||
NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
|
||||
if ([sender selectedSegmentIndex] == 0) {
|
||||
[userPreferences setObject:@"xs" forKey:@"feed_list_font_size"];
|
||||
} else if ([sender selectedSegmentIndex] == 1) {
|
||||
[userPreferences setObject:@"small" forKey:@"feed_list_font_size"];
|
||||
} else if ([sender selectedSegmentIndex] == 2) {
|
||||
[userPreferences setObject:@"medium" forKey:@"feed_list_font_size"];
|
||||
} else if ([sender selectedSegmentIndex] == 3) {
|
||||
[userPreferences setObject:@"large" forKey:@"feed_list_font_size"];
|
||||
} else if ([sender selectedSegmentIndex] == 4) {
|
||||
[userPreferences setObject:@"xl" forKey:@"feed_list_font_size"];
|
||||
}
|
||||
[userPreferences synchronize];
|
||||
|
||||
[appDelegate resizeFontSize];
|
||||
}
|
||||
|
||||
- (IBAction)changeInfrequent:(id)sender {
|
||||
NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
|
||||
if ([sender selectedSegmentIndex] == 0) {
|
||||
[userPreferences setObject:[NSNumber numberWithInteger:5] forKey:@"infrequent_stories_per_month"];
|
||||
} else if ([sender selectedSegmentIndex] == 1) {
|
||||
[userPreferences setObject:[NSNumber numberWithInteger:15] forKey:@"infrequent_stories_per_month"];
|
||||
} else if ([sender selectedSegmentIndex] == 2) {
|
||||
[userPreferences setObject:[NSNumber numberWithInteger:30] forKey:@"infrequent_stories_per_month"];
|
||||
} else if ([sender selectedSegmentIndex] == 3) {
|
||||
[userPreferences setObject:[NSNumber numberWithInteger:60] forKey:@"infrequent_stories_per_month"];
|
||||
} else if ([sender selectedSegmentIndex] == 4) {
|
||||
[userPreferences setObject:[NSNumber numberWithInteger:90] forKey:@"infrequent_stories_per_month"];
|
||||
}
|
||||
[userPreferences synchronize];
|
||||
|
||||
[appDelegate.feedDetailViewController reloadStories];
|
||||
[appDelegate.feedDetailViewController flashInfrequentStories];
|
||||
}
|
||||
|
||||
- (IBAction)changeTheme:(id)sender {
|
||||
NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
|
||||
NSString *theme = ThemeStyleLight;
|
||||
switch ([sender selectedSegmentIndex]) {
|
||||
case 1:
|
||||
theme = ThemeStyleSepia;
|
||||
break;
|
||||
case 2:
|
||||
theme = ThemeStyleMedium;
|
||||
break;
|
||||
case 3:
|
||||
theme = ThemeStyleDark;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
[ThemeManager themeManager].theme = theme;
|
||||
|
||||
self.menuTableView.backgroundColor = UIColorFromRGB(0xECEEEA);
|
||||
self.menuTableView.separatorColor = UIColorFromRGB(0x909090);
|
||||
[self.menuTableView reloadData];
|
||||
[userPreferences synchronize];
|
||||
}
|
||||
|
||||
@end
|
|
@ -93,12 +93,9 @@
|
|||
- (void)redrawUnreadStory;
|
||||
- (IBAction)doOpenMarkReadMenu:(id)sender;
|
||||
- (IBAction)doOpenSettingsMenu:(id)sender;
|
||||
- (void)confirmDeleteSite;
|
||||
- (void)confirmMuteSite;
|
||||
- (void)deleteSite;
|
||||
- (void)deleteFolder;
|
||||
- (void)muteSite;
|
||||
- (void)openMoveView;
|
||||
- (void)openTrainSite;
|
||||
- (void)openNotificationsWithFeed:(NSString *)feedId;
|
||||
- (void)openRenameSite;
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
#import "StringHelper.h"
|
||||
#import "Utilities.h"
|
||||
#import "UIBarButtonItem+Image.h"
|
||||
#import "FeedDetailMenuViewController.h"
|
||||
#import "MarkReadMenuViewController.h"
|
||||
#import "NBNotifier.h"
|
||||
#import "NBLoadingCell.h"
|
||||
|
@ -2115,26 +2114,153 @@ didEndSwipingSwipingWithState:(MCSwipeTableViewCellState)state
|
|||
}];
|
||||
}
|
||||
|
||||
- (BOOL)isRiver {
|
||||
return appDelegate.storiesCollection.isSocialRiverView ||
|
||||
appDelegate.storiesCollection.isSocialView ||
|
||||
appDelegate.storiesCollection.isSavedView ||
|
||||
appDelegate.storiesCollection.isReadView;
|
||||
}
|
||||
|
||||
- (BOOL)isInfrequent {
|
||||
return appDelegate.storiesCollection.isRiverView &&
|
||||
[appDelegate.storiesCollection.activeFolder isEqualToString:@"infrequent"];
|
||||
}
|
||||
|
||||
- (IBAction)doOpenSettingsMenu:(id)sender {
|
||||
if (self.presentedViewController) {
|
||||
[self.presentedViewController dismissViewControllerAnimated:YES completion:nil];
|
||||
return;
|
||||
}
|
||||
|
||||
[self.appDelegate.feedDetailMenuViewController buildMenuOptions];
|
||||
[self.appDelegate.feedDetailMenuViewController view];
|
||||
NSInteger menuCount = [self.appDelegate.feedDetailMenuViewController.menuOptions count] + 5;
|
||||
NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
|
||||
MenuViewController *viewController = [MenuViewController new];
|
||||
__weak MenuViewController *weakViewController = viewController;
|
||||
|
||||
[self.appDelegate.feedDetailMenuNavigationController popToRootViewControllerAnimated:NO];
|
||||
[self.appDelegate showPopoverWithViewController:self.appDelegate.feedDetailMenuNavigationController contentSize:CGSizeMake(260, 38 * menuCount) barButtonItem:self.settingsBarButton];
|
||||
BOOL everything = appDelegate.storiesCollection.isRiverView &&
|
||||
[appDelegate.storiesCollection.activeFolder isEqualToString:@"everything"];
|
||||
BOOL infrequent = [self isInfrequent];
|
||||
BOOL river = [self isRiver];
|
||||
BOOL read = appDelegate.storiesCollection.isReadView;
|
||||
BOOL saved = appDelegate.storiesCollection.isSavedView;
|
||||
|
||||
if (!everything && !infrequent && !read && !saved) {
|
||||
NSString *deleteText = [NSString stringWithFormat:@"Delete %@",
|
||||
appDelegate.storiesCollection.isRiverView ?
|
||||
@"this entire folder" :
|
||||
@"this site"];
|
||||
|
||||
[viewController addTitle:deleteText iconName:@"menu_icn_delete.png" selectionShouldDismiss:NO handler:^{
|
||||
[self confirmDeleteSite:weakViewController.navigationController];
|
||||
}];
|
||||
|
||||
[viewController addTitle:@"Move to another folder" iconName:@"menu_icn_move.png" selectionShouldDismiss:NO handler:^{
|
||||
[self openMoveView:weakViewController.navigationController];
|
||||
}];
|
||||
}
|
||||
|
||||
if (!infrequent && !saved && !read) {
|
||||
NSString *renameText = [NSString stringWithFormat:@"Rename this %@", appDelegate.storiesCollection.isRiverView ? @"folder" : @"site"];
|
||||
|
||||
[viewController addTitle:renameText iconName:@"menu_icn_rename.png" selectionShouldDismiss:YES handler:^{
|
||||
[self openRenameSite];
|
||||
}];
|
||||
}
|
||||
|
||||
if (!appDelegate.storiesCollection.isRiverView && !infrequent && !saved && !read) {
|
||||
[viewController addTitle:@"Mute this site" iconName:@"menu_icn_mute.png" selectionShouldDismiss:NO handler:^{
|
||||
[self confirmMuteSite:weakViewController.navigationController];
|
||||
}];
|
||||
|
||||
[viewController addTitle:@"Train this site" iconName:@"menu_icn_train.png" selectionShouldDismiss:YES handler:^{
|
||||
[self openTrainSite];
|
||||
}];
|
||||
|
||||
if ([appDelegate.storiesCollection.activeFeed[@"ng"] integerValue] > 0) {
|
||||
NSString *title = appDelegate.storiesCollection.showHiddenStories ? @"Hide hidden stories" : @"Show hidden stories";
|
||||
|
||||
[viewController addTitle:title iconName:@"menu_icn_all.png" selectionShouldDismiss:YES handler:^{
|
||||
[self toggleHiddenStories];
|
||||
}];
|
||||
}
|
||||
|
||||
[viewController addTitle:@"Notifications" iconName:@"menu_icn_notifications.png" selectionShouldDismiss:YES handler:^{
|
||||
[self
|
||||
openNotificationsWithFeed:[NSString stringWithFormat:@"%@", [appDelegate.storiesCollection.activeFeed objectForKey:@"id"]]];
|
||||
}];
|
||||
|
||||
[viewController addTitle:@"Insta-fetch stories" iconName:@"menu_icn_fetch.png" selectionShouldDismiss:YES handler:^{
|
||||
[self instafetchFeed];
|
||||
}];
|
||||
}
|
||||
|
||||
[viewController addSegmentedControlWithTitles:@[@"Newest First", @"Oldest"] selectIndex:[appDelegate.storiesCollection.activeOrder isEqualToString:@"newest"] ? 0 : 1 selectionShouldDismiss:YES handler:^(NSUInteger selectedIndex) {
|
||||
if (selectedIndex == 0) {
|
||||
[userPreferences setObject:@"newest" forKey:[appDelegate.storiesCollection orderKey]];
|
||||
} else {
|
||||
[userPreferences setObject:@"oldest" forKey:[appDelegate.storiesCollection orderKey]];
|
||||
}
|
||||
|
||||
[self reloadStories];
|
||||
}];
|
||||
|
||||
if (infrequent || !river) {
|
||||
[viewController addSegmentedControlWithTitles:@[@"All stories", @"Unread only"] selectIndex:[appDelegate.storiesCollection.activeReadFilter isEqualToString:@"all"] ? 0 : 1 selectionShouldDismiss:YES handler:^(NSUInteger selectedIndex) {
|
||||
if (selectedIndex == 0) {
|
||||
[userPreferences setObject:@"all" forKey:appDelegate.storiesCollection.readFilterKey];
|
||||
} else {
|
||||
[userPreferences setObject:@"unread" forKey:appDelegate.storiesCollection.readFilterKey];
|
||||
}
|
||||
|
||||
[self reloadStories];
|
||||
}];
|
||||
}
|
||||
|
||||
NSString *preferenceKey = @"story_list_preview_text_size";
|
||||
NSArray *titles = @[@"Title", @"1", @"2", @"3"];
|
||||
NSArray *values = @[@"title", @"short", @"medium", @"long"];
|
||||
|
||||
[viewController addSegmentedControlWithTitles:titles values:values preferenceKey:preferenceKey selectionShouldDismiss:YES handler:^(NSUInteger selectedIndex) {
|
||||
[appDelegate resizePreviewSize];
|
||||
}];
|
||||
|
||||
preferenceKey = @"story_list_preview_images_size";
|
||||
titles = @[@"No image", @"Small", @"Large"];
|
||||
values = @[@"none", @"small", @"large"];
|
||||
|
||||
[viewController addSegmentedControlWithTitles:titles values:values preferenceKey:preferenceKey selectionShouldDismiss:YES handler:^(NSUInteger selectedIndex) {
|
||||
[appDelegate resizePreviewSize];
|
||||
}];
|
||||
|
||||
preferenceKey = @"feed_list_font_size";
|
||||
titles = @[@"XS", @"S", @"M", @"L", @"XL"];
|
||||
values = @[@"xs", @"small", @"medium", @"large", @"xl"];
|
||||
|
||||
[viewController addSegmentedControlWithTitles:titles values:values preferenceKey:preferenceKey selectionShouldDismiss:YES handler:^(NSUInteger selectedIndex) {
|
||||
[appDelegate resizeFontSize];
|
||||
}];
|
||||
|
||||
if (infrequent) {
|
||||
preferenceKey = @"infrequent_stories_per_month";
|
||||
titles = @[@"5", @"15", @"30", @"60", @"90"];
|
||||
values = @[@5, @15, @30, @60, @90];
|
||||
|
||||
[viewController addSegmentedControlWithTitles:titles values:values preferenceKey:preferenceKey selectionShouldDismiss:YES handler:^(NSUInteger selectedIndex) {
|
||||
[appDelegate.feedDetailViewController reloadStories];
|
||||
[appDelegate.feedDetailViewController flashInfrequentStories];
|
||||
}];
|
||||
}
|
||||
|
||||
[viewController addThemeSegmentedControl];
|
||||
|
||||
[viewController showFromNavigationController:self.navigationController barButtonItem:self.settingsBarButton];
|
||||
}
|
||||
|
||||
- (void)confirmDeleteSite {
|
||||
- (void)confirmDeleteSite:(UINavigationController *)menuNavigationController {
|
||||
MenuViewController *viewController = [MenuViewController new];
|
||||
viewController.title = @"Positive?";
|
||||
NSString *title = storiesCollection.isRiverView ? @"Delete Folder" : @"Delete Site";
|
||||
|
||||
[viewController addTitle:title iconName:@"menu_icn_delete.png" selectionShouldDismiss:YES handler:^{
|
||||
[viewController addTitle:title iconName:@"menu_icn_delete.png" destructive:YES selectionShouldDismiss:YES handler:^{
|
||||
if (storiesCollection.isRiverView) {
|
||||
[self deleteFolder];
|
||||
} else {
|
||||
|
@ -2142,10 +2268,10 @@ didEndSwipingSwipingWithState:(MCSwipeTableViewCellState)state
|
|||
}
|
||||
}];
|
||||
|
||||
[self.appDelegate.feedDetailMenuNavigationController pushViewController:viewController animated:YES];
|
||||
[menuNavigationController pushViewController:viewController animated:YES];
|
||||
}
|
||||
|
||||
- (void)confirmMuteSite {
|
||||
- (void)confirmMuteSite:(UINavigationController *)menuNavigationController {
|
||||
MenuViewController *viewController = [MenuViewController new];
|
||||
viewController.title = @"Positive?";
|
||||
|
||||
|
@ -2153,7 +2279,7 @@ didEndSwipingSwipingWithState:(MCSwipeTableViewCellState)state
|
|||
[self muteSite];
|
||||
}];
|
||||
|
||||
[self.appDelegate.feedDetailMenuNavigationController pushViewController:viewController animated:YES];
|
||||
[menuNavigationController pushViewController:viewController animated:YES];
|
||||
}
|
||||
|
||||
- (void)renameTo:(NSString *)newTitle {
|
||||
|
@ -2309,7 +2435,7 @@ didEndSwipingSwipingWithState:(MCSwipeTableViewCellState)state
|
|||
}];
|
||||
}
|
||||
|
||||
- (void)openMoveView {
|
||||
- (void)openMoveView:(UINavigationController *)menuNavigationController {
|
||||
MenuViewController *viewController = [MenuViewController new];
|
||||
viewController.title = @"Move To";
|
||||
|
||||
|
@ -2337,7 +2463,7 @@ didEndSwipingSwipingWithState:(MCSwipeTableViewCellState)state
|
|||
}
|
||||
}
|
||||
|
||||
[self.appDelegate.feedDetailMenuNavigationController pushViewController:viewController animated:YES];
|
||||
[menuNavigationController pushViewController:viewController animated:YES];
|
||||
}
|
||||
|
||||
//- (void)openMoveView {
|
||||
|
@ -2348,6 +2474,12 @@ didEndSwipingSwipingWithState:(MCSwipeTableViewCellState)state
|
|||
[appDelegate openTrainSite];
|
||||
}
|
||||
|
||||
- (void)toggleHiddenStories {
|
||||
appDelegate.storiesCollection.showHiddenStories = !appDelegate.storiesCollection.showHiddenStories;
|
||||
[appDelegate.storiesCollection calculateStoryLocations];
|
||||
[self.storyTitlesTable reloadData];
|
||||
}
|
||||
|
||||
- (void)openNotificationsWithFeed:(NSString *)feedId {
|
||||
[appDelegate openNotificationsWithFeed:feedId];
|
||||
}
|
||||
|
@ -2378,8 +2510,9 @@ didEndSwipingSwipingWithState:(MCSwipeTableViewCellState)state
|
|||
[self.presentedViewController dismissViewControllerAnimated:NO completion:^{
|
||||
[self presentViewController:alert animated:YES completion:nil];
|
||||
}];
|
||||
} else {
|
||||
[self presentViewController:alert animated:YES completion:nil];
|
||||
}
|
||||
// [self.appDelegate showAlert:alert withViewController:self];
|
||||
}
|
||||
|
||||
- (void)showUserProfile {
|
||||
|
|
|
@ -43,24 +43,19 @@
|
|||
self.frame.size.height);
|
||||
|
||||
if (self.destructive) {
|
||||
self.textLabel.backgroundColor = [UIColor clearColor];
|
||||
self.textLabel.textColor = UIColorFromRGB(0xffffff);
|
||||
self.textLabel.highlightedTextColor = UIColorFromRGB(0x303030);
|
||||
self.textLabel.shadowColor = UIColorFromRGB(0xa0a0a0);
|
||||
self.textLabel.shadowOffset = CGSizeMake(0, 1);
|
||||
self.backgroundColor = UIColorFromRGB(0xff0000);
|
||||
self.backgroundView.backgroundColor = UIColorFromRGB(0xff0000);
|
||||
self.selectedBackgroundView.backgroundColor = UIColorFromRGB(0xffdada);
|
||||
self.textLabel.textColor = UIColorFromFixedRGB(0xff0000);
|
||||
self.textLabel.highlightedTextColor = UIColorFromFixedRGB(0xff0000);
|
||||
} else {
|
||||
self.textLabel.backgroundColor = [UIColor clearColor];
|
||||
self.textLabel.textColor = UIColorFromRGB(0x303030);
|
||||
self.textLabel.highlightedTextColor = UIColorFromRGB(0x303030);
|
||||
self.textLabel.shadowColor = UIColorFromRGB(0xF0F0F0);
|
||||
self.textLabel.shadowOffset = CGSizeMake(0, 1);
|
||||
self.backgroundColor = UIColorFromRGB(0xFFFFFF);
|
||||
self.backgroundView.backgroundColor = UIColorFromRGB(0xFFFFFF);
|
||||
self.selectedBackgroundView.backgroundColor = UIColorFromRGB(0xECEEEA);
|
||||
}
|
||||
|
||||
self.textLabel.backgroundColor = [UIColor clearColor];
|
||||
self.textLabel.shadowColor = UIColorFromRGB(0xF0F0F0);
|
||||
self.textLabel.shadowOffset = CGSizeMake(0, 1);
|
||||
self.backgroundColor = UIColorFromRGB(0xFFFFFF);
|
||||
self.backgroundView.backgroundColor = UIColorFromRGB(0xFFFFFF);
|
||||
self.selectedBackgroundView.backgroundColor = UIColorFromRGB(0xECEEEA);
|
||||
}
|
||||
|
||||
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
|
||||
|
|
|
@ -18,8 +18,11 @@ typedef void (^MenuItemSegmentedHandler)(NSUInteger selectedIndex);
|
|||
@property (nonatomic) NSInteger checkedRow;
|
||||
|
||||
- (void)addTitle:(NSString *)title iconName:(NSString *)iconName selectionShouldDismiss:(BOOL)selectionShouldDismiss handler:(MenuItemHandler)handler;
|
||||
- (void)addTitle:(NSString *)title iconName:(NSString *)iconName destructive:(BOOL)isDestructive selectionShouldDismiss:(BOOL)selectionShouldDismiss handler:(MenuItemHandler)handler;
|
||||
- (void)addTitle:(NSString *)title iconTemplateName:(NSString *)iconTemplateName selectionShouldDismiss:(BOOL)selectionShouldDismiss handler:(MenuItemHandler)handler;
|
||||
- (void)addSegmentedControlWithTitles:(NSArray *)titles selectIndex:(NSUInteger)selectIndex selectionShouldDismiss:(BOOL)selectionShouldDismiss handler:(MenuItemSegmentedHandler)handler;
|
||||
- (void)addSegmentedControlWithTitles:(NSArray *)titles values:(NSArray *)values preferenceKey:(NSString *)preferenceKey selectionShouldDismiss:(BOOL)selectionShouldDismiss handler:(MenuItemSegmentedHandler)handler;
|
||||
- (void)addThemeSegmentedControl;
|
||||
|
||||
- (void)showFromNavigationController:(UINavigationController *)navigationController barButtonItem:(UIBarButtonItem *)barButtonItem;
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
NSString * const MenuTitle = @"title";
|
||||
NSString * const MenuIcon = @"icon";
|
||||
NSString * const MenuDestructive = @"destructive";
|
||||
NSString * const MenuThemeSegment = @"theme";
|
||||
NSString * const MenuSegmentTitles = @"segmentTitles";
|
||||
NSString * const MenuSegmentIndex = @"segmentIndex";
|
||||
NSString * const MenuSelectionShouldDismiss = @"selectionShouldDismiss";
|
||||
|
@ -19,7 +20,7 @@ NSString * const MenuHandler = @"handler";
|
|||
|
||||
#define kMenuOptionHeight 38
|
||||
|
||||
@interface MenuViewController () <UIPopoverPresentationControllerDelegate>
|
||||
@interface MenuViewController () <UIPopoverPresentationControllerDelegate, UINavigationControllerDelegate>
|
||||
|
||||
@property (nonatomic, strong) NSMutableArray *items;
|
||||
|
||||
|
@ -89,7 +90,11 @@ NSString * const MenuHandler = @"handler";
|
|||
}
|
||||
|
||||
- (void)addTitle:(NSString *)title iconName:(NSString *)iconName selectionShouldDismiss:(BOOL)selectionShouldDismiss handler:(MenuItemHandler)handler {
|
||||
[self addTitle:title iconImage:[UIImage imageNamed:iconName] destructive:[iconName isEqualToString:@"menu_icn_delete.png"] || [iconName isEqualToString:@"menu_icn_mute.png"]selectionShouldDismiss:selectionShouldDismiss handler:handler];
|
||||
[self addTitle:title iconImage:[UIImage imageNamed:iconName] destructive:NO selectionShouldDismiss:selectionShouldDismiss handler:handler];
|
||||
}
|
||||
|
||||
- (void)addTitle:(NSString *)title iconName:(NSString *)iconName destructive:(BOOL)isDestructive selectionShouldDismiss:(BOOL)selectionShouldDismiss handler:(MenuItemHandler)handler {
|
||||
[self addTitle:title iconImage:[UIImage imageNamed:iconName] destructive:isDestructive selectionShouldDismiss:selectionShouldDismiss handler:handler];
|
||||
}
|
||||
|
||||
- (void)addTitle:(NSString *)title iconTemplateName:(NSString *)iconTemplateName selectionShouldDismiss:(BOOL)selectionShouldDismiss handler:(MenuItemHandler)handler {
|
||||
|
@ -100,6 +105,88 @@ NSString * const MenuHandler = @"handler";
|
|||
[self.items addObject:@{MenuSegmentTitles : titles, MenuSegmentIndex : @(selectIndex), MenuSelectionShouldDismiss : @(selectionShouldDismiss), MenuHandler : handler}];
|
||||
}
|
||||
|
||||
- (void)addSegmentedControlWithTitles:(NSArray *)titles values:(NSArray *)values preferenceKey:(NSString *)preferenceKey selectionShouldDismiss:(BOOL)selectionShouldDismiss handler:(MenuItemSegmentedHandler)handler {
|
||||
NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
|
||||
id value = [userPreferences objectForKey:preferenceKey];
|
||||
NSUInteger valueIndex = [values indexOfObject:value];
|
||||
|
||||
if (valueIndex < 0) {
|
||||
valueIndex = 0;
|
||||
}
|
||||
|
||||
[self addSegmentedControlWithTitles:titles selectIndex:valueIndex selectionShouldDismiss:selectionShouldDismiss handler:^(NSUInteger selectedIndex) {
|
||||
[userPreferences setObject:values[selectedIndex] forKey:preferenceKey];
|
||||
|
||||
handler(selectedIndex);
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)addThemeSegmentedControl {
|
||||
[self.items addObject:@{MenuSegmentTitles : @[], MenuThemeSegment : @YES}];
|
||||
}
|
||||
|
||||
- (UIImage *)themeImageWithName:(NSString *)name selected:(BOOL)selected {
|
||||
if (selected) {
|
||||
name = [name stringByAppendingString:@"-sel"];
|
||||
}
|
||||
|
||||
return [[UIImage imageNamed:name] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
|
||||
}
|
||||
|
||||
- (UITableViewCell *)makeThemeSegmentedTableCell {
|
||||
UITableViewCell *cell = [UITableViewCell new];
|
||||
cell.frame = CGRectMake(0, 0, 240, kMenuOptionHeight);
|
||||
cell.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||
cell.separatorInset = UIEdgeInsetsZero;
|
||||
cell.backgroundColor = UIColorFromRGB(0xffffff);
|
||||
|
||||
NSString *theme = [ThemeManager themeManager].theme;
|
||||
NSArray *values = @[ThemeStyleLight, ThemeStyleSepia, ThemeStyleMedium, ThemeStyleDark];
|
||||
NSUInteger valueIndex = [values indexOfObject:theme];
|
||||
|
||||
if (valueIndex < 0) {
|
||||
valueIndex = 0;
|
||||
}
|
||||
|
||||
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithFrame:CGRectMake(8, 4, cell.frame.size.width - 8 * 2, kMenuOptionHeight - 4 * 2)];
|
||||
|
||||
[segmentedControl addTarget:self action:@selector(changeTheme:) forControlEvents:UIControlEventValueChanged];
|
||||
|
||||
UIImage *lightImage = [self themeImageWithName:@"theme_color_light" selected:valueIndex == 0];
|
||||
UIImage *sepiaImage = [self themeImageWithName:@"theme_color_sepia" selected:valueIndex == 1];
|
||||
UIImage *mediumImage = [self themeImageWithName:@"theme_color_medium" selected:valueIndex == 2];
|
||||
UIImage *darkImage = [self themeImageWithName:@"theme_color_dark" selected:valueIndex == 3];
|
||||
|
||||
[segmentedControl insertSegmentWithImage:lightImage atIndex:0 animated: NO];
|
||||
[segmentedControl insertSegmentWithImage:sepiaImage atIndex:1 animated: NO];
|
||||
[segmentedControl insertSegmentWithImage:mediumImage atIndex:2 animated: NO];
|
||||
[segmentedControl insertSegmentWithImage:darkImage atIndex:3 animated: NO];
|
||||
|
||||
UIGraphicsBeginImageContextWithOptions(CGSizeMake(1, segmentedControl.frame.size.height), NO, 0.0);
|
||||
UIImage *blankImage = UIGraphicsGetImageFromCurrentImageContext();
|
||||
UIGraphicsEndImageContext();
|
||||
|
||||
[segmentedControl setDividerImage:blankImage forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
|
||||
segmentedControl.tintColor = [UIColor clearColor];
|
||||
segmentedControl.backgroundColor = [UIColor clearColor];
|
||||
|
||||
segmentedControl.selectedSegmentIndex = valueIndex;
|
||||
|
||||
[cell addSubview:segmentedControl];
|
||||
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (IBAction)changeTheme:(UISegmentedControl *)sender {
|
||||
NSArray *values = @[ThemeStyleLight, ThemeStyleSepia, ThemeStyleMedium, ThemeStyleDark];
|
||||
|
||||
[ThemeManager themeManager].theme = [values objectAtIndex:sender.selectedSegmentIndex];
|
||||
|
||||
self.menuTableView.backgroundColor = UIColorFromRGB(0xECEEEA);
|
||||
self.menuTableView.separatorColor = UIColorFromRGB(0x909090);
|
||||
[self.menuTableView reloadData];
|
||||
}
|
||||
|
||||
- (UITableViewCell *)makeSegmentedTableCellForItem:(NSDictionary *)item forRow:(NSUInteger)row {
|
||||
UITableViewCell *cell = [UITableViewCell new];
|
||||
cell.frame = CGRectMake(0.0, 0.0, 240.0, kMenuOptionHeight);
|
||||
|
@ -150,15 +237,19 @@ NSString * const MenuHandler = @"handler";
|
|||
[presentedViewController dismissViewControllerAnimated:YES completion:nil];
|
||||
}
|
||||
|
||||
self.modalPresentationStyle = UIModalPresentationPopover;
|
||||
UINavigationController *embeddedNavController = [[UINavigationController alloc] initWithRootViewController:self];
|
||||
|
||||
UIPopoverPresentationController *popoverPresentationController = self.popoverPresentationController;
|
||||
embeddedNavController.navigationBarHidden = YES;
|
||||
embeddedNavController.modalPresentationStyle = UIModalPresentationPopover;
|
||||
embeddedNavController.delegate = self;
|
||||
|
||||
UIPopoverPresentationController *popoverPresentationController = embeddedNavController.popoverPresentationController;
|
||||
popoverPresentationController.delegate = self;
|
||||
popoverPresentationController.backgroundColor = UIColorFromRGB(NEWSBLUR_WHITE_COLOR);
|
||||
popoverPresentationController.permittedArrowDirections = UIPopoverArrowDirectionUp;
|
||||
popoverPresentationController.barButtonItem = barButtonItem;
|
||||
|
||||
[navigationController presentViewController:self animated:YES completion:nil];
|
||||
[navigationController presentViewController:embeddedNavController animated:YES completion:nil];
|
||||
}
|
||||
|
||||
#pragma mark - Table view data source
|
||||
|
@ -170,7 +261,9 @@ NSString * const MenuHandler = @"handler";
|
|||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
NSDictionary *item = self.items[indexPath.row];
|
||||
|
||||
if (item[MenuSegmentTitles]) {
|
||||
if (item[MenuThemeSegment]) {
|
||||
return [self makeThemeSegmentedTableCell];
|
||||
} else if (item[MenuSegmentTitles]) {
|
||||
return [self makeSegmentedTableCellForItem:item forRow:indexPath.row];
|
||||
} else {
|
||||
static NSString *CellIndentifier = @"MenuTableCell";
|
||||
|
@ -251,4 +344,10 @@ NSString * const MenuHandler = @"handler";
|
|||
return UIModalPresentationNone;
|
||||
}
|
||||
|
||||
#pragma mark - UINavigationControllerDelegate
|
||||
|
||||
- (void)navigationController:(UINavigationController *)navController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
|
||||
[navController setNavigationBarHidden:viewController == self animated:YES];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
#import "FeedTableCell.h"
|
||||
#import "FeedDetailTableCell.h"
|
||||
#import "FeedsMenuViewController.h"
|
||||
#import "FeedDetailMenuViewController.h"
|
||||
#import "FontSettingsViewController.h"
|
||||
#import "AddSiteViewController.h"
|
||||
#import "TrainerViewController.h"
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
@class DashboardViewController;
|
||||
@class FeedsMenuViewController;
|
||||
@class FeedDetailViewController;
|
||||
@class FeedDetailMenuViewController;
|
||||
@class MarkReadMenuViewController;
|
||||
@class FirstTimeUserViewController;
|
||||
@class FirstTimeUserAddSitesViewController;
|
||||
|
@ -77,7 +76,6 @@ SFSafariViewControllerDelegate> {
|
|||
NewsBlurViewController *feedsViewController;
|
||||
FeedsMenuViewController *feedsMenuViewController;
|
||||
FeedDetailViewController *feedDetailViewController;
|
||||
FeedDetailMenuViewController *feedDetailMenuViewController;
|
||||
FriendsListViewController *friendsListViewController;
|
||||
FontSettingsViewController *fontSettingsViewController;
|
||||
|
||||
|
@ -175,7 +173,6 @@ SFSafariViewControllerDelegate> {
|
|||
@property (nonatomic) IBOutlet NewsBlurViewController *feedsViewController;
|
||||
@property (nonatomic) IBOutlet FeedsMenuViewController *feedsMenuViewController;
|
||||
@property (nonatomic) IBOutlet FeedDetailViewController *feedDetailViewController;
|
||||
@property (nonatomic) IBOutlet FeedDetailMenuViewController *feedDetailMenuViewController;
|
||||
@property (nonatomic, strong) UINavigationController *feedDetailMenuNavigationController;
|
||||
@property (nonatomic) IBOutlet FriendsListViewController *friendsListViewController;
|
||||
@property (nonatomic) IBOutlet StoryDetailViewController *storyDetailViewController;
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
#import "DashboardViewController.h"
|
||||
#import "MarkReadMenuViewController.h"
|
||||
#import "FeedsMenuViewController.h"
|
||||
#import "FeedDetailMenuViewController.h"
|
||||
#import "StoryDetailViewController.h"
|
||||
#import "StoryPageControl.h"
|
||||
#import "FirstTimeUserViewController.h"
|
||||
|
@ -99,7 +98,6 @@
|
|||
@synthesize feedsViewController;
|
||||
@synthesize feedsMenuViewController;
|
||||
@synthesize feedDetailViewController;
|
||||
@synthesize feedDetailMenuViewController;
|
||||
@synthesize friendsListViewController;
|
||||
@synthesize fontSettingsViewController;
|
||||
@synthesize storyDetailViewController;
|
||||
|
@ -1936,7 +1934,7 @@
|
|||
}
|
||||
|
||||
- (void)navigationController:(UINavigationController *)_navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
|
||||
if ([viewController isKindOfClass:[SFSafariViewController class]] || [viewController isKindOfClass:[FontSettingsViewController class]] || [viewController isKindOfClass:[feedDetailMenuViewController class]]) {
|
||||
if ([viewController isKindOfClass:[SFSafariViewController class]] || [viewController isKindOfClass:[FontSettingsViewController class]]) {
|
||||
[_navigationController setNavigationBarHidden:YES animated:YES];
|
||||
} else {
|
||||
[_navigationController setNavigationBarHidden:NO animated:YES];
|
||||
|
@ -1961,15 +1959,6 @@
|
|||
return _fontSettingsNavigationController;
|
||||
}
|
||||
|
||||
- (UINavigationController *)feedDetailMenuNavigationController {
|
||||
if (!_feedDetailMenuNavigationController) {
|
||||
self.feedDetailMenuNavigationController = [[UINavigationController alloc] initWithRootViewController:self.feedDetailMenuViewController];
|
||||
self.feedDetailMenuNavigationController.delegate = self;
|
||||
}
|
||||
|
||||
return _feedDetailMenuNavigationController;
|
||||
}
|
||||
|
||||
- (void)closeOriginalStory {
|
||||
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
|
||||
[self.masterContainerViewController transitionFromOriginalView];
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
#import "FeedTableCell.h"
|
||||
#import "DashboardViewController.h"
|
||||
#import "FeedsMenuViewController.h"
|
||||
#import "FeedDetailMenuViewController.h"
|
||||
#import "FeedDetailViewController.h"
|
||||
#import "UserProfileViewController.h"
|
||||
#import "StoryDetailViewController.h"
|
||||
|
|
|
@ -56,6 +56,7 @@
|
|||
@property (nonatomic, readwrite) BOOL isSavedView;
|
||||
@property (nonatomic, readwrite) BOOL isReadView;
|
||||
@property (nonatomic, readwrite) BOOL transferredFromDashboard;
|
||||
@property (nonatomic, readwrite) BOOL showHiddenStories;
|
||||
@property (nonatomic, readwrite) BOOL inSearch;
|
||||
@property (nonatomic) NSString *searchQuery;
|
||||
|
||||
|
|
|
@ -114,7 +114,9 @@
|
|||
NSDictionary *story = [self.activeFeedStories objectAtIndex:i];
|
||||
NSInteger score = [NewsBlurAppDelegate computeStoryScore:[story objectForKey:@"intelligence"]];
|
||||
BOOL want = NO;
|
||||
if (self.appDelegate.isSavedStoriesIntelligenceMode) {
|
||||
if (self.showHiddenStories) {
|
||||
want = YES;
|
||||
} else if (self.appDelegate.isSavedStoriesIntelligenceMode) {
|
||||
want = [story[@"starred"] boolValue];
|
||||
} else {
|
||||
want = score >= appDelegate.selectedIntelligence || [[story objectForKey:@"sticky"] boolValue];
|
||||
|
|
|
@ -581,8 +581,6 @@
|
|||
FFDE35CC161B8F870034BFDE /* FolderTitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = FFDE35CB161B8F870034BFDE /* FolderTitleView.m */; };
|
||||
FFDE35D2161B9E600034BFDE /* disclosure_border.png in Resources */ = {isa = PBXBuildFile; fileRef = FFDE35D1161B9E600034BFDE /* disclosure_border.png */; };
|
||||
FFDE35DA161D12250034BFDE /* UnreadCountView.m in Sources */ = {isa = PBXBuildFile; fileRef = FFDE35D9161D12250034BFDE /* UnreadCountView.m */; };
|
||||
FFDE35EA162799B90034BFDE /* FeedDetailMenuViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = FFDE35E9162799B90034BFDE /* FeedDetailMenuViewController.m */; };
|
||||
FFDE35ED1627A1C40034BFDE /* FeedDetailMenuViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = FFDE35EC1627A1C40034BFDE /* FeedDetailMenuViewController.xib */; };
|
||||
FFE5322F144C8AC300ACFDE0 /* Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = FFE5322E144C8AC300ACFDE0 /* Utilities.m */; };
|
||||
FFE816AB17E280BD008AF4B0 /* ftux_tree.png in Resources */ = {isa = PBXBuildFile; fileRef = FFE816AA17E280BD008AF4B0 /* ftux_tree.png */; };
|
||||
FFE816AD17E29D71008AF4B0 /* big_world_white.png in Resources */ = {isa = PBXBuildFile; fileRef = FFE816AC17E29D71008AF4B0 /* big_world_white.png */; };
|
||||
|
@ -1412,9 +1410,6 @@
|
|||
FFDE35D1161B9E600034BFDE /* disclosure_border.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = disclosure_border.png; sourceTree = "<group>"; };
|
||||
FFDE35D8161D12250034BFDE /* UnreadCountView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnreadCountView.h; sourceTree = "<group>"; };
|
||||
FFDE35D9161D12250034BFDE /* UnreadCountView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UnreadCountView.m; sourceTree = "<group>"; };
|
||||
FFDE35E8162799B90034BFDE /* FeedDetailMenuViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FeedDetailMenuViewController.h; sourceTree = "<group>"; };
|
||||
FFDE35E9162799B90034BFDE /* FeedDetailMenuViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FeedDetailMenuViewController.m; sourceTree = "<group>"; };
|
||||
FFDE35EC1627A1C40034BFDE /* FeedDetailMenuViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FeedDetailMenuViewController.xib; sourceTree = "<group>"; };
|
||||
FFE5322D144C8AC300ACFDE0 /* Utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utilities.h; sourceTree = "<group>"; };
|
||||
FFE5322E144C8AC300ACFDE0 /* Utilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Utilities.m; sourceTree = "<group>"; };
|
||||
FFE816AA17E280BD008AF4B0 /* ftux_tree.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftux_tree.png; sourceTree = "<group>"; };
|
||||
|
@ -1779,8 +1774,6 @@
|
|||
787A0CD911CE65330056422D /* FeedDetailViewController.m */,
|
||||
7843F50311EEB1A000675F64 /* FeedDetailTableCell.h */,
|
||||
7843F50411EEB1A000675F64 /* FeedDetailTableCell.m */,
|
||||
FFDE35E8162799B90034BFDE /* FeedDetailMenuViewController.h */,
|
||||
FFDE35E9162799B90034BFDE /* FeedDetailMenuViewController.m */,
|
||||
FF2D8CE214893BBF00057B80 /* MoveSiteViewController.h */,
|
||||
FF2D8CE314893BBF00057B80 /* MoveSiteViewController.m */,
|
||||
FF5ACC221DE5F0C000FBD044 /* NotificationsViewController.h */,
|
||||
|
@ -2207,7 +2200,6 @@
|
|||
17432C7B1C533E89003F8FD6 /* MenuViewController.xib */,
|
||||
17432C791C533DCC003F8FD6 /* FeedChooserViewController.xib */,
|
||||
17CBD3BB1BF66B07003FCCAE /* MarkReadMenuViewController.xib */,
|
||||
FFDE35EC1627A1C40034BFDE /* FeedDetailMenuViewController.xib */,
|
||||
43763AD0158F90B100B3DBE2 /* FontSettingsViewController.xib */,
|
||||
17EB50611BE46BB00021358B /* FontListViewController.xib */,
|
||||
43B8F01C156603170008733D /* LoginViewController.xib */,
|
||||
|
@ -2991,7 +2983,6 @@
|
|||
FF21B1171C8221E20053938A /* disclosure_border_sepia@2x.png in Resources */,
|
||||
FF546DF9160298E500948020 /* fleuron@2x.png in Resources */,
|
||||
FFDE35D2161B9E600034BFDE /* disclosure_border.png in Resources */,
|
||||
FFDE35ED1627A1C40034BFDE /* FeedDetailMenuViewController.xib in Resources */,
|
||||
FF83FF181FB54693008DAC0F /* g_icn_search_black.png in Resources */,
|
||||
FF03B00219F881380063002A /* ARChromeActivity@3x~ipad.png in Resources */,
|
||||
17C5BA6E1CA39EA400F5961C /* unread_yellow_icn.png in Resources */,
|
||||
|
@ -3367,7 +3358,6 @@
|
|||
FFDE35CC161B8F870034BFDE /* FolderTitleView.m in Sources */,
|
||||
E1C44B0B200147ED002128AD /* StoryTitleAttributedString.m in Sources */,
|
||||
FFDE35DA161D12250034BFDE /* UnreadCountView.m in Sources */,
|
||||
FFDE35EA162799B90034BFDE /* FeedDetailMenuViewController.m in Sources */,
|
||||
FF34FD621E9D93CB0062F8ED /* IASKMultipleValueSelection.m in Sources */,
|
||||
FF4130A3162E10CF00DDB6A7 /* MenuTableViewCell.m in Sources */,
|
||||
17432C7F1C533FBC003F8FD6 /* MenuViewController.m in Sources */,
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" colorMatched="YES">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" colorMatched="YES">
|
||||
<device id="ipad9_7" orientation="portrait">
|
||||
<adaptation id="fullscreen"/>
|
||||
</device>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14460.20"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14490.49"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
|
@ -19,7 +19,6 @@
|
|||
<connections>
|
||||
<outlet property="addSiteViewController" destination="121" id="127"/>
|
||||
<outlet property="dashboardViewController" destination="238" id="239"/>
|
||||
<outlet property="feedDetailMenuViewController" destination="278" id="280"/>
|
||||
<outlet property="feedDetailViewController" destination="51" id="91"/>
|
||||
<outlet property="feedsMenuViewController" destination="162" id="163"/>
|
||||
<outlet property="feedsViewController" destination="10" id="15"/>
|
||||
|
@ -107,13 +106,6 @@
|
|||
<outlet property="appDelegate" destination="3" id="281"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<viewController id="278" customClass="FeedDetailMenuViewController">
|
||||
<extendedEdge key="edgesForExtendedLayout"/>
|
||||
<simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackOpaque"/>
|
||||
<connections>
|
||||
<outlet property="appDelegate" destination="3" id="279"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<viewController restorationIdentifier="FeedDetailView" nibName="FeedDetailViewController" id="51" customClass="FeedDetailViewController">
|
||||
<extendedEdge key="edgesForExtendedLayout"/>
|
||||
<simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackOpaque"/>
|
||||
|
|
|
@ -1,139 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" colorMatched="YES">
|
||||
<device id="retina4_7" orientation="portrait">
|
||||
<adaptation id="fullscreen"/>
|
||||
</device>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14460.20"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="FeedDetailMenuViewController">
|
||||
<connections>
|
||||
<outlet property="fontSizeSegment" destination="bWr-qv-pDn" id="fcF-wf-yty"/>
|
||||
<outlet property="imageSizeSegment" destination="XGc-Fp-10c" id="cvr-6z-2bb"/>
|
||||
<outlet property="infrequentSegmentedControl" destination="wTg-kB-yYa" id="9s1-Eu-iT5"/>
|
||||
<outlet property="menuTableView" destination="3" id="15"/>
|
||||
<outlet property="orderSegmentedControl" destination="18" id="20"/>
|
||||
<outlet property="previewSizeSegment" destination="YDG-1N-Pky" id="tti-11-cI6"/>
|
||||
<outlet property="readFilterSegmentedControl" destination="19" id="21"/>
|
||||
<outlet property="themeSegmentedControl" destination="KEQ-LR-Qwh" id="VCu-7n-52C"/>
|
||||
<outlet property="view" destination="1" id="16"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="1">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" bounces="NO" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="3">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<connections>
|
||||
<outlet property="dataSource" destination="-1" id="12"/>
|
||||
<outlet property="delegate" destination="-1" id="13"/>
|
||||
</connections>
|
||||
</tableView>
|
||||
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="bar" selectedSegmentIndex="0" id="19">
|
||||
<rect key="frame" x="43" y="252" width="159" height="30"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<segments>
|
||||
<segment title="ALL STORIES"/>
|
||||
<segment title="UNREAD ONLY"/>
|
||||
</segments>
|
||||
<connections>
|
||||
<action selector="changeReadFilter:" destination="-1" eventType="valueChanged" id="22"/>
|
||||
</connections>
|
||||
</segmentedControl>
|
||||
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="bar" selectedSegmentIndex="0" id="18">
|
||||
<rect key="frame" x="43" y="215" width="159" height="30"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<segments>
|
||||
<segment title="NEWEST FIRST"/>
|
||||
<segment title="OLDEST"/>
|
||||
</segments>
|
||||
<connections>
|
||||
<action selector="changeOrder:" destination="-1" eventType="valueChanged" id="23"/>
|
||||
</connections>
|
||||
</segmentedControl>
|
||||
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="bar" selectedSegmentIndex="2" id="KEQ-LR-Qwh">
|
||||
<rect key="frame" x="43" y="289" width="234" height="29"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<segments>
|
||||
<segment title="" image="theme_color_light.png"/>
|
||||
<segment title="" image="theme_color_sepia.png"/>
|
||||
<segment title="" image="theme_color_medium.png"/>
|
||||
<segment title="" image="theme_color_dark.png"/>
|
||||
</segments>
|
||||
<connections>
|
||||
<action selector="changeTheme:" destination="-1" eventType="valueChanged" id="XZv-tp-Ovk"/>
|
||||
</connections>
|
||||
</segmentedControl>
|
||||
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="bar" selectedSegmentIndex="2" id="bWr-qv-pDn">
|
||||
<rect key="frame" x="61" y="325" width="159" height="28"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<segments>
|
||||
<segment title="11pt"/>
|
||||
<segment title="12pt"/>
|
||||
<segment title="14pt"/>
|
||||
<segment title="16pt"/>
|
||||
<segment title="18pt"/>
|
||||
</segments>
|
||||
<connections>
|
||||
<action selector="changeFontSize:" destination="-1" eventType="valueChanged" id="Aix-Az-zOq"/>
|
||||
</connections>
|
||||
</segmentedControl>
|
||||
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="bar" selectedSegmentIndex="2" id="XGc-Fp-10c">
|
||||
<rect key="frame" x="80" y="215" width="159" height="29"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<segments>
|
||||
<segment title="NO IMAGE"/>
|
||||
<segment title="SMALL"/>
|
||||
<segment title="LARGE"/>
|
||||
</segments>
|
||||
<connections>
|
||||
<action selector="changeImageSize:" destination="-1" eventType="valueChanged" id="hB6-bC-oPu"/>
|
||||
</connections>
|
||||
</segmentedControl>
|
||||
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="bar" selectedSegmentIndex="2" id="YDG-1N-Pky">
|
||||
<rect key="frame" x="80" y="215" width="159" height="29"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<segments>
|
||||
<segment title="TITLE ONLY"/>
|
||||
<segment title="1"/>
|
||||
<segment title="2"/>
|
||||
<segment title="3"/>
|
||||
</segments>
|
||||
<connections>
|
||||
<action selector="changePreviewSize:" destination="-1" eventType="valueChanged" id="qgZ-FG-KU6"/>
|
||||
</connections>
|
||||
</segmentedControl>
|
||||
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="bar" selectedSegmentIndex="2" id="wTg-kB-yYa">
|
||||
<rect key="frame" x="86" y="360" width="159" height="29"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<segments>
|
||||
<segment title="5"/>
|
||||
<segment title="15"/>
|
||||
<segment title="30"/>
|
||||
<segment title="60"/>
|
||||
<segment title="90"/>
|
||||
</segments>
|
||||
<connections>
|
||||
<action selector="changeInfrequent:" destination="-1" eventType="valueChanged" id="zX1-WK-yLB"/>
|
||||
</connections>
|
||||
</segmentedControl>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="simulatedStatusBarMetrics"/>
|
||||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="theme_color_dark.png" width="32" height="32"/>
|
||||
<image name="theme_color_light.png" width="32" height="32"/>
|
||||
<image name="theme_color_medium.png" width="32" height="32"/>
|
||||
<image name="theme_color_sepia.png" width="32" height="32"/>
|
||||
</resources>
|
||||
</document>
|
|
@ -1,11 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" colorMatched="YES">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" colorMatched="YES">
|
||||
<device id="retina4_7" orientation="portrait">
|
||||
<adaptation id="fullscreen"/>
|
||||
</device>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14460.20"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14490.49"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
|
@ -19,7 +19,6 @@
|
|||
<connections>
|
||||
<outlet property="addSiteViewController" destination="121" id="127"/>
|
||||
<outlet property="dashboardViewController" destination="177" id="179"/>
|
||||
<outlet property="feedDetailMenuViewController" destination="165" id="167"/>
|
||||
<outlet property="feedDetailViewController" destination="51" id="91"/>
|
||||
<outlet property="feedsMenuViewController" destination="128" id="129"/>
|
||||
<outlet property="feedsViewController" destination="10" id="15"/>
|
||||
|
@ -55,12 +54,6 @@
|
|||
<outlet property="appDelegate" destination="3" id="168"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<viewController id="165" customClass="FeedDetailMenuViewController">
|
||||
<extendedEdge key="edgesForExtendedLayout"/>
|
||||
<connections>
|
||||
<outlet property="appDelegate" destination="3" id="166"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<viewController restorationIdentifier="FeedDetailView" nibName="FeedDetailViewController" id="51" customClass="FeedDetailViewController">
|
||||
<extendedEdge key="edgesForExtendedLayout"/>
|
||||
<connections>
|
||||
|
|
Loading…
Add table
Reference in a new issue