Finished collapsing/expanding folders in iOS app. Saved as a preference (although not synced with the server). Collapsed folders still need unread count.

This commit is contained in:
Samuel Clay 2012-10-03 15:46:02 -07:00
parent 82f8261dc0
commit c4c8db94b2
9 changed files with 197 additions and 113 deletions

View file

@ -66,7 +66,6 @@ static UIFont *indicatorFont = nil;
[backgroundColor set];
CGContextFillRect(context, r);
NSLog(@"WIDTH is %f", rect.size.width);
// set site title
UIColor *textColor;
UIFont *font;

View file

@ -129,7 +129,7 @@
}
if (appDelegate.isSocialRiverView ||
[appDelegate.activeFolder isEqualToString:@"All Stories"]) {
[appDelegate.activeFolder isEqualToString:@"everything"]) {
feedMarkReadButton.enabled = NO;
} else {
feedMarkReadButton.enabled = YES;
@ -152,11 +152,6 @@
[appDelegate.storyDetailViewController clearStory];
[self checkScroll];
}
NSString *title = appDelegate.isRiverView ?
appDelegate.activeFolder :
[appDelegate.activeFeed objectForKey:@"feed_title"];
NSLog(@"title %@", title);
}
- (void)viewWillDisappear:(BOOL)animated {
@ -266,14 +261,6 @@
[self.storyTitlesTable reloadData];
[storyTitlesTable scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:YES];
}
int readStoriesCount = 0;
if (self.feedPage > 1) {
for (id story in appDelegate.activeFeedStories) {
if ([[story objectForKey:@"read_status"] intValue] == 1) {
readStoriesCount += 1;
}
}
}
NSString *theFeedDetailURL;
@ -284,11 +271,10 @@
self.feedPage];
} else {
theFeedDetailURL = [NSString stringWithFormat:
@"http://%@/reader/river_stories/?feeds=%@&page=%d&read_stories_count=%d",
@"http://%@/reader/river_stories/?feeds=%@&page=%d",
NEWSBLUR_URL,
[appDelegate.activeFolderFeeds componentsJoinedByString:@"&feeds="],
self.feedPage,
readStoriesCount];
self.feedPage];
}
[self cancelRequests];

View file

@ -230,14 +230,14 @@ static CGFloat *psColors = nil;
} else {
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
[self.feedFavicon drawInRect:CGRectMake(12.0, 9.0, 16.0, 16.0)];
[self.feedFavicon drawInRect:CGRectMake(12.0, 7.0, 16.0, 16.0)];
[feedTitle
drawInRect:CGRectMake(36.0, 9.0, rect.size.width - psWidth - psPadding - ntWidth - ntPadding - ngWidth - 10, 20.0)
withFont:font
lineBreakMode:UILineBreakModeTailTruncation
alignment:UITextAlignmentLeft];
} else {
[self.feedFavicon drawInRect:CGRectMake(9.0, 9.0, 16.0, 16.0)];
[self.feedFavicon drawInRect:CGRectMake(9.0, 7.0, 16.0, 16.0)];
[feedTitle
drawInRect:CGRectMake(34.0, 9.0, rect.size.width - psWidth - psPadding - ntWidth - ntPadding - ngWidth - 10, 20.0)
withFont:font

View file

@ -25,10 +25,16 @@
- (UIControl *)drawWithRect:(CGRect)rect inSection:(NSInteger)section {
self.appDelegate = (NewsBlurAppDelegate *)[[UIApplication sharedApplication] delegate];
int folderImageViewY;
folderImageViewY = 3;
NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
NSString *folderName;
if (section == 0) {
folderName = @"river_blurblogs";
} else {
folderName = [appDelegate.dictFoldersArray objectAtIndex:section];
}
NSString *collapseKey = [NSString stringWithFormat:@"folderCollapsed:%@", folderName];
bool isFolderCollapsed = [userPreferences boolForKey:collapseKey];
// create the parent view that will hold header Label
UIControl* customView = [[UIControl alloc]
@ -76,6 +82,40 @@
colorWithAlphaComponent:0.8];
[customView addSubview:headerLabel];
UIButton *invisibleHeaderButton = [UIButton buttonWithType:UIButtonTypeCustom];
invisibleHeaderButton.frame = CGRectMake(0, 0, customView.frame.size.width, customView.frame.size.height);
invisibleHeaderButton.alpha = .1;
invisibleHeaderButton.tag = section;
[invisibleHeaderButton addTarget:appDelegate.feedsViewController action:@selector(didSelectSectionHeader:) forControlEvents:UIControlEventTouchUpInside];
[customView addSubview:invisibleHeaderButton];
[invisibleHeaderButton addTarget:appDelegate.feedsViewController action:@selector(sectionTapped:) forControlEvents:UIControlEventTouchDown];
[invisibleHeaderButton addTarget:appDelegate.feedsViewController action:@selector(sectionUntapped:) forControlEvents:UIControlEventTouchUpInside];
[invisibleHeaderButton addTarget:appDelegate.feedsViewController action:@selector(sectionUntappedOutside:) forControlEvents:UIControlEventTouchUpOutside];
if (!appDelegate.hasNoSites) {
if (section != 1) {
UIImage *disclosureBorder = [UIImage imageNamed:@"disclosure_border.png"];
UIImageView *disclosureBorderView = [[UIImageView alloc] initWithImage:disclosureBorder];
disclosureBorderView.frame = CGRectMake(customView.frame.size.width - 30, -1, 29, 29);
[customView addSubview:disclosureBorderView];
}
UIButton *disclosureButton = [UIButton buttonWithType:UIButtonTypeCustom];
UIImage *disclosureImage = [UIImage imageNamed:@"disclosure.png"];
[disclosureButton setImage:disclosureImage forState:UIControlStateNormal];
disclosureButton.frame = CGRectMake(customView.frame.size.width - 30, -1, 29, 29);
if (section != 1) {
if (!isFolderCollapsed) {
disclosureButton.transform = CGAffineTransformMakeRotation(M_PI_2);
}
disclosureButton.tag = section;
[disclosureButton addTarget:appDelegate.feedsViewController action:@selector(didCollapseFolder:) forControlEvents:UIControlEventTouchUpInside];
}
[customView addSubview:disclosureButton];
}
UIImage *folderImage;
int folderImageViewX = 10;
@ -94,49 +134,20 @@
folderImageViewX = 7;
}
} else {
folderImage = [UIImage imageNamed:@"folder_2.png"];
if (isFolderCollapsed) {
folderImage = [UIImage imageNamed:@"folder_collapsed.png"];
} else {
folderImage = [UIImage imageNamed:@"folder_2.png"];
}
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
} else {
folderImageViewX = 7;
}
}
UIImageView *folderImageView = [[UIImageView alloc] initWithImage:folderImage];
folderImageView.frame = CGRectMake(folderImageViewX, folderImageViewY, 20, 20);
folderImageView.frame = CGRectMake(folderImageViewX, 3, 20, 20);
[customView addSubview:folderImageView];
UIButton *invisibleHeaderButton = [UIButton buttonWithType:UIButtonTypeCustom];
invisibleHeaderButton.frame = CGRectMake(0, 0, customView.frame.size.width, customView.frame.size.height);
invisibleHeaderButton.alpha = .1;
invisibleHeaderButton.tag = section;
[invisibleHeaderButton addTarget:appDelegate.feedsViewController action:@selector(didSelectSectionHeader:) forControlEvents:UIControlEventTouchUpInside];
[customView addSubview:invisibleHeaderButton];
[invisibleHeaderButton addTarget:appDelegate.feedsViewController action:@selector(sectionTapped:) forControlEvents:UIControlEventTouchDown];
[invisibleHeaderButton addTarget:appDelegate.feedsViewController action:@selector(sectionUntapped:) forControlEvents:UIControlEventTouchUpInside];
[invisibleHeaderButton addTarget:appDelegate.feedsViewController action:@selector(sectionUntappedOutside:) forControlEvents:UIControlEventTouchUpOutside];
if (!appDelegate.hasNoSites) {
if (section != 1) {
UIImage *disclosureBorder = [UIImage imageNamed:@"disclosure_border.png"];
UIImageView *disclosureBorderView = [[UIImageView alloc] initWithImage:disclosureBorder];
disclosureBorderView.frame = CGRectMake(customView.frame.size.width - 30, 0, 29, 29);
[customView addSubview:disclosureBorderView];
}
UIButton *disclosureButton = [UIButton buttonWithType:UIButtonTypeCustom];
UIImage *disclosureImage = [UIImage imageNamed:@"disclosure.png"];
UIImageView *disclosureImageView = [[UIImageView alloc] initWithImage:disclosureImage];
[disclosureButton setImage:disclosureImage forState:UIControlStateNormal];
disclosureButton.frame = CGRectMake(customView.frame.size.width - 30, 0, 29, 29);
if (section != 1) {
disclosureImageView.transform = CGAffineTransformMakeRotation(M_PI_2);
}
[customView addSubview:disclosureButton];
// [disclosureImageView addTarget]
}
[customView setAutoresizingMask:UIViewAutoresizingNone];
return customView;

View file

@ -546,7 +546,13 @@
- (void)loadStoryDetailView {
NSString *feedTitle;
if (self.isRiverView) {
feedTitle = self.activeFolder;
if ([self.activeFolder isEqualToString:@"river_blurblogs"]) {
feedTitle = @"All Shared Stories";
} else if ([self.activeFolder isEqualToString:@"everything"]) {
feedTitle = @"All Stories";
} else {
feedTitle = self.activeFolder;
}
} else {
feedTitle = [activeFeed objectForKey:@"feed_title"];
}
@ -759,11 +765,11 @@
int total = 0;
NSArray *folder;
if (!folderName && self.activeFolder == @"ALL BLURBLOG STORIES") {
if (!folderName && self.activeFolder == @"river_blurblogs") {
for (id feedId in self.dictSocialFeeds) {
total += [self unreadCountForFeed:feedId];
}
} else if (!folderName && self.activeFolder == @"ALL STORIES STORIES") {
} else if (!folderName && self.activeFolder == @"everything") {
for (id feedId in self.dictFeeds) {
total += [self unreadCountForFeed:feedId];
}
@ -961,7 +967,7 @@
}
- (void)markActiveFolderAllRead {
if (self.activeFolder == @"Everything") {
if (self.activeFolder == @"everything") {
for (NSString *folderName in self.dictFoldersArray) {
for (id feedId in [self.dictFolders objectForKey:folderName]) {
[self markFeedAllRead:feedId];
@ -1154,9 +1160,11 @@
- (UIView *)makeFeedTitle:(NSDictionary *)feed {
UILabel *titleLabel = [[UILabel alloc] init];
if (self.isSocialRiverView) {
titleLabel.text = [NSString stringWithFormat:@" All Blurblog Stories"];
titleLabel.text = [NSString stringWithFormat:@" All Shared Stories"];
} else if (self.isRiverView && [self.activeFolder isEqualToString:@"everything"]) {
titleLabel.text = [NSString stringWithFormat:@" All Stories"];
} else if (self.isRiverView) {
titleLabel.text = [NSString stringWithFormat:@" %@", self.activeFolder];
titleLabel.text = [NSString stringWithFormat:@" %@", self.activeFolder];
} else if (self.isSocialView) {
titleLabel.text = [NSString stringWithFormat:@" %@", [feed objectForKey:@"feed_title"]];
} else {

View file

@ -69,6 +69,7 @@
- (void)setUserAvatarLayout:(UIInterfaceOrientation)orientation;
- (void)didSelectSectionHeader:(UIButton *)button;
- (IBAction)selectIntelligence;
- (void)didCollapseFolder:(UIButton *)button;
- (void)changeToAllMode;
- (void)updateFeedsWithIntelligence:(int)previousLevel newLevel:(int)newLevel;
- (void)calculateFeedLocations:(BOOL)markVisible;

View file

@ -22,8 +22,8 @@
#import "UIBarButtonItem+WEPopover.h"
#define kPhoneTableViewRowHeight 36;
#define kTableViewRowHeight 36;
#define kPhoneTableViewRowHeight 32;
#define kTableViewRowHeight 32;
#define kBlurblogTableViewRowHeight 47;
#define kPhoneBlurblogTableViewRowHeight 39;
static const CGFloat kFolderTitleHeight = 28;
@ -393,10 +393,10 @@ static const CGFloat kFolderTitleHeight = 28;
allFolders = [[results objectForKey:@"flat_folders"] mutableCopy];
}
[allFolders setValue:socialFolder forKey:@""];
[allFolders setValue:socialFolder forKey:@"river_blurblogs"];
if (![[allFolders allKeys] containsObject:@" "]) {
[allFolders setValue:[[NSArray alloc] init] forKey:@" "];
if (![[allFolders allKeys] containsObject:@"everything"]) {
[allFolders setValue:[[NSArray alloc] init] forKey:@"everything"];
}
appDelegate.dictFolders = allFolders;
@ -434,6 +434,16 @@ static const CGFloat kFolderTitleHeight = 28;
}
appDelegate.dictFolders = sortedFolders;
[appDelegate.dictFoldersArray sortUsingSelector:@selector(caseInsensitiveCompare:)];
// Move River Blurblog and Everything to the top
if ([appDelegate.dictFoldersArray containsObject:@"river_blurblogs"]) {
[appDelegate.dictFoldersArray removeObject:@"river_blurblogs"];
[appDelegate.dictFoldersArray insertObject:@"river_blurblogs" atIndex:0];
}
if ([appDelegate.dictFoldersArray containsObject:@"everything"]) {
[appDelegate.dictFoldersArray removeObject:@"everything"];
[appDelegate.dictFoldersArray insertObject:@"everything" atIndex:1];
}
if (self.viewShowingAllFeeds) {
[self calculateFeedLocations:NO];
@ -567,7 +577,7 @@ static const CGFloat kFolderTitleHeight = 28;
- (void)switchSitesUnread {
NSDictionary *feed;
NSInteger intelligenceLevel = [appDelegate selectedIntelligence];
NSMutableArray *indexPaths = [NSMutableArray array];
@ -617,18 +627,25 @@ static const CGFloat kFolderTitleHeight = 28;
[self calculateFeedLocations:YES];
}
[self.feedTitlesTable beginUpdates];
if ([indexPaths count] > 0) {
if (self.viewShowingAllFeeds) {
[self.feedTitlesTable insertRowsAtIndexPaths:indexPaths
withRowAnimation:UITableViewRowAnimationNone];
} else {
[self.feedTitlesTable deleteRowsAtIndexPaths:indexPaths
withRowAnimation:UITableViewRowAnimationNone];
// @try {
[self.feedTitlesTable beginUpdates];
if ([indexPaths count] > 0) {
if (self.viewShowingAllFeeds) {
[self.feedTitlesTable insertRowsAtIndexPaths:indexPaths
withRowAnimation:UITableViewRowAnimationNone];
} else {
[self.feedTitlesTable deleteRowsAtIndexPaths:indexPaths
withRowAnimation:UITableViewRowAnimationNone];
}
}
}
[self.feedTitlesTable endUpdates];
[self.feedTitlesTable endUpdates];
// }
// @catch (NSException *exception) {
// NSLog(@"EXCEPTION: %@", exception);
// [self.feedTitlesTable beginUpdates];
// [self.feedTitlesTable endUpdates];
// [self.feedTitlesTable reloadData];
// }
CGPoint offset = CGPointMake(0, 0);
[self.feedTitlesTable setContentOffset:offset animated:YES];
@ -660,6 +677,7 @@ static const CGFloat kFolderTitleHeight = 28;
}
NSString *folderName = [appDelegate.dictFoldersArray objectAtIndex:section];
return [[self.activeFeedLocations objectForKey:folderName] count];
}
@ -740,7 +758,14 @@ static const CGFloat kFolderTitleHeight = 28;
self.currentRowAtIndexPath = indexPath;
NSDictionary *feed;
NSString *folderName = [appDelegate.dictFoldersArray objectAtIndex:indexPath.section];
NSString *folderName;
if (indexPath.section == 0) {
folderName = @"river_blurblogs";
} else if (indexPath.section == 1) {
folderName = @"everything";
} else {
folderName = [appDelegate.dictFoldersArray objectAtIndex:indexPath.section];
}
NSArray *feeds = [appDelegate.dictFolders objectForKey:folderName];
NSArray *activeFolderFeeds = [self.activeFeedLocations objectForKey:folderName];
int location = [[activeFolderFeeds objectAtIndex:indexPath.row] intValue];
@ -780,9 +805,21 @@ static const CGFloat kFolderTitleHeight = 28;
}
}
NSString *folderName = [appDelegate.dictFoldersArray objectAtIndex:indexPath.section];
NSString *folderName;
if (indexPath.section == 0) {
folderName = @"river_blurblogs";
} else {
folderName = [appDelegate.dictFoldersArray objectAtIndex:indexPath.section];
}
NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
NSString *collapseKey = [NSString stringWithFormat:@"folderCollapsed:%@", folderName];
bool isFolderCollapsed = [userPreferences boolForKey:collapseKey];
if ([folderName isEqualToString:@""]) { // blurblogs
if (isFolderCollapsed) {
return 0;
}
if ([folderName isEqualToString:@"river_blurblogs"]) { // blurblogs
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
return kBlurblogTableViewRowHeight;
} else {
@ -848,9 +885,9 @@ static const CGFloat kFolderTitleHeight = 28;
appDelegate.isSocialRiverView = YES;
appDelegate.isRiverView = YES;
// add all the feeds from every NON blurblog folder
[appDelegate setActiveFolder:@"All Blurblog Stories"];
[appDelegate setActiveFolder:@"river_blurblogs"];
for (NSString *folderName in self.activeFeedLocations) {
if ([folderName isEqualToString:@""]) { // remove all blurblugs which is a blank folder name
if ([folderName isEqualToString:@"river_blurblogs"]) { // remove all blurblugs which is a blank folder name
NSArray *originalFolder = [appDelegate.dictFolders objectForKey:folderName];
NSArray *folderFeeds = [self.activeFeedLocations objectForKey:folderName];
for (int l=0; l < [folderFeeds count]; l++) {
@ -862,9 +899,9 @@ static const CGFloat kFolderTitleHeight = 28;
appDelegate.isSocialRiverView = NO;
appDelegate.isRiverView = YES;
// add all the feeds from every NON blurblog folder
[appDelegate setActiveFolder:@"All Stories"];
[appDelegate setActiveFolder:@"everything"];
for (NSString *folderName in self.activeFeedLocations) {
if (![folderName isEqualToString:@""]) { // remove all blurblugs which is a blank folder name
if (![folderName isEqualToString:@"river_blurblogs"]) {
NSArray *originalFolder = [appDelegate.dictFolders objectForKey:folderName];
NSArray *folderFeeds = [self.activeFeedLocations objectForKey:folderName];
for (int l=0; l < [folderFeeds count]; l++) {
@ -890,6 +927,35 @@ static const CGFloat kFolderTitleHeight = 28;
[appDelegate loadRiverFeedDetailView];
}
- (void)didCollapseFolder:(UIButton *)button {
NSString *folderName;
NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
if (button.tag == 0) {
folderName = @"river_blurblogs";
} else {
folderName = [appDelegate.dictFoldersArray objectAtIndex:button.tag];
}
NSString *collapseKey = [NSString stringWithFormat:@"folderCollapsed:%@", folderName];
bool isFolderCollapsed = [userPreferences boolForKey:collapseKey];
if (isFolderCollapsed) {
// Expand folder
[userPreferences setBool:NO forKey:collapseKey];
} else {
// Collapse folder
[userPreferences setBool:YES forKey:collapseKey];
}
[userPreferences synchronize];
[self.feedTitlesTable reloadSections:[NSIndexSet indexSetWithIndex:button.tag]
withRowAnimation:UITableViewRowAnimationFade];
[self.feedTitlesTable beginUpdates];
[self.feedTitlesTable endUpdates];
}
- (void)changeToAllMode {
[self.intelligenceControl setSelectedSegmentIndex:0];
NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
@ -905,7 +971,7 @@ static const CGFloat kFolderTitleHeight = 28;
int selectedSegmentIndex = [self.intelligenceControl selectedSegmentIndex];
NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
if (selectedSegmentIndex == 0) {
hud.labelText = @"All Stories";
[userPreferences setInteger:-1 forKey:@"selectedIntelligence"];
@ -915,7 +981,7 @@ static const CGFloat kFolderTitleHeight = 28;
int previousLevel = appDelegate.selectedIntelligence;
[appDelegate setSelectedIntelligence:0];
[self updateFeedsWithIntelligence:previousLevel newLevel:0];
[self redrawUnreadCounts];
[self redrawUnreadCounts];
}
self.viewShowingAllFeeds = YES;
[self switchSitesUnread];
@ -947,7 +1013,7 @@ static const CGFloat kFolderTitleHeight = 28;
[self redrawUnreadCounts];
}
[hud hide:YES afterDelay:0.75];
[hud hide:YES afterDelay:0.5];
// [self.feedTitlesTable reloadData];
}
@ -1045,16 +1111,22 @@ static const CGFloat kFolderTitleHeight = 28;
[self calculateFeedLocations:NO];
}
[self.feedTitlesTable beginUpdates];
if ([deleteIndexPaths count] > 0) {
[self.feedTitlesTable deleteRowsAtIndexPaths:deleteIndexPaths
withRowAnimation:UITableViewRowAnimationNone];
@try {
[self.feedTitlesTable beginUpdates];
if ([deleteIndexPaths count] > 0) {
[self.feedTitlesTable deleteRowsAtIndexPaths:deleteIndexPaths
withRowAnimation:UITableViewRowAnimationNone];
}
if ([insertIndexPaths count] > 0) {
[self.feedTitlesTable insertRowsAtIndexPaths:insertIndexPaths
withRowAnimation:UITableViewRowAnimationNone];
}
[self.feedTitlesTable endUpdates];
}
if ([insertIndexPaths count] > 0) {
[self.feedTitlesTable insertRowsAtIndexPaths:insertIndexPaths
withRowAnimation:UITableViewRowAnimationNone];
@catch (NSException *exception) {
NSLog(@"Exception: %@", exception);
[self.feedTitlesTable reloadData];
}
[self.feedTitlesTable endUpdates];
// scrolls to the top and fixes header rendering bug
CGPoint offsetOne = CGPointMake(0, 1);
@ -1084,7 +1156,7 @@ static const CGFloat kFolderTitleHeight = 28;
id feedId = [folder objectAtIndex:f];
NSString *feedIdStr = [NSString stringWithFormat:@"%@",feedId];
if ([folderName isEqualToString:@""]){
if ([folderName isEqualToString:@"river_blurblogs"]){
feed = [appDelegate.dictSocialFeeds objectForKey:feedIdStr];
} else {
feed = [appDelegate.dictFeeds objectForKey:feedIdStr];
@ -1099,7 +1171,7 @@ static const CGFloat kFolderTitleHeight = 28;
[feedLocations addObject:location];
} else {
int maxScore = [NewsBlurViewController computeMaxScoreForFeed:feed];
// if ([folderName isEqualToString:@""]){
// if ([folderName isEqualToString:@"river_blurblogs"]){
// NSLog(@"Computing score for %@: %d in %d (markVisible: %d)",
// [feed objectForKey:@"feed_title"], maxScore, appDelegate.selectedIntelligence, markVisible);
// }
@ -1114,10 +1186,6 @@ static const CGFloat kFolderTitleHeight = 28;
}
}
if ([folderName isEqualToString:@""]){
// NSLog(@"feedLocations count is %i: ", [feedLocations count]);
}
// NSLog(@"feedLocations %@", feedLocations);
[self.activeFeedLocations setObject:feedLocations forKey:folderName];
}

View file

@ -368,6 +368,8 @@
FFD887F01445F1E800385399 /* AddSiteAutocompleteCell.m in Sources */ = {isa = PBXBuildFile; fileRef = FFD887EE1445F1E800385399 /* AddSiteAutocompleteCell.m */; };
FFDE35CC161B8F870034BFDE /* FolderTitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = FFDE35CB161B8F870034BFDE /* FolderTitleView.m */; };
FFDE35D2161B9E600034BFDE /* disclosure_border.png in Resources */ = {isa = PBXBuildFile; fileRef = FFDE35D1161B9E600034BFDE /* disclosure_border.png */; };
FFDE35D6161CCABC0034BFDE /* folder_collapsed.png in Resources */ = {isa = PBXBuildFile; fileRef = FFDE35D4161CCABC0034BFDE /* folder_collapsed.png */; };
FFDE35D7161CCABC0034BFDE /* folder_collapsed@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = FFDE35D5161CCABC0034BFDE /* folder_collapsed@2x.png */; };
FFE5322F144C8AC300ACFDE0 /* Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = FFE5322E144C8AC300ACFDE0 /* Utilities.m */; };
/* End PBXBuildFile section */
@ -885,6 +887,8 @@
FFDE35CA161B8F870034BFDE /* FolderTitleView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FolderTitleView.h; sourceTree = "<group>"; };
FFDE35CB161B8F870034BFDE /* FolderTitleView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FolderTitleView.m; sourceTree = "<group>"; };
FFDE35D1161B9E600034BFDE /* disclosure_border.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = disclosure_border.png; sourceTree = "<group>"; };
FFDE35D4161CCABC0034BFDE /* folder_collapsed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = folder_collapsed.png; sourceTree = "<group>"; };
FFDE35D5161CCABC0034BFDE /* folder_collapsed@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "folder_collapsed@2x.png"; 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>"; };
/* End PBXFileReference section */
@ -1142,6 +1146,8 @@
431B857615A132B600DCE497 /* Images */ = {
isa = PBXGroup;
children = (
FFDE35D4161CCABC0034BFDE /* folder_collapsed.png */,
FFDE35D5161CCABC0034BFDE /* folder_collapsed@2x.png */,
FFDE35D1161B9E600034BFDE /* disclosure_border.png */,
43BC458E15D9F75F00205B69 /* facebook_button_on.png */,
43BC458F15D9F75F00205B69 /* facebook_button_on@2x.png */,
@ -2113,6 +2119,8 @@
FF546DF71602930100948020 /* Default-568h@2x.png in Resources */,
FF546DF9160298E500948020 /* fleuron@2x.png in Resources */,
FFDE35D2161B9E600034BFDE /* disclosure_border.png in Resources */,
FFDE35D6161CCABC0034BFDE /* folder_collapsed.png in Resources */,
FFDE35D7161CCABC0034BFDE /* folder_collapsed@2x.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -2292,9 +2300,11 @@
"\"$(SRCROOT)\"",
"\"$(SRCROOT)/Other Sources\"",
);
OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)";
OTHER_LDFLAGS = (
"-all_load",
"-ObjC",
"-fobjc-exceptions",
);
PRODUCT_NAME = NewsBlur;
PROVISIONING_PROFILE = "";
@ -2332,6 +2342,7 @@
OTHER_LDFLAGS = (
"-ObjC",
"-all_load",
"-fobjc-exceptions",
);
PRODUCT_NAME = NewsBlur;
PROVISIONING_PROFILE = "";

View file

@ -7,19 +7,19 @@
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Classes/ActivityCell.m"
timestampString = "370898006.367348"
filePath = "Classes/NewsBlurViewController.m"
timestampString = "370996140.882983"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "122"
endingLineNumber = "122"
landmarkName = "-setActivity:withUserProfile:withWidth:"
startingLineNumber = "594"
endingLineNumber = "594"
landmarkName = "-switchSitesUnread"
landmarkType = "5">
</FileBreakpoint>
</FileBreakpoints>
<SymbolicBreakpoints>
<SymbolicBreakpoint
shouldBeEnabled = "Yes"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "objc_exception_throw"
@ -28,7 +28,7 @@
</SymbolicBreakpoints>
<ExceptionBreakpoints>
<ExceptionBreakpoint
shouldBeEnabled = "Yes"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
scope = "0"