mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-09-18 21:50:56 +00:00
Adding icons to main screen and handling html entities on feed detail.
This commit is contained in:
parent
437c7ae5a3
commit
979b6bbcca
9 changed files with 206 additions and 26 deletions
15
media/iphone/Base64.h
Normal file
15
media/iphone/Base64.h
Normal file
|
@ -0,0 +1,15 @@
|
|||
//
|
||||
// Base64.h
|
||||
// NewsBlur
|
||||
//
|
||||
// Created by Samuel Clay on 8/3/11.
|
||||
// Copyright 2011 NewsBlur. All rights reserved.
|
||||
//
|
||||
|
||||
|
||||
|
||||
@interface NSData (MBBase64)
|
||||
|
||||
+ (id)dataWithBase64EncodedString:(NSString *)string; // Padding '=' characters are optional. Whitespace is ignored.
|
||||
- (NSString *)base64Encoding;
|
||||
@end
|
106
media/iphone/Base64.m
Normal file
106
media/iphone/Base64.m
Normal file
|
@ -0,0 +1,106 @@
|
|||
#include "Base64.h"
|
||||
|
||||
static const char encodingTable[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||
|
||||
|
||||
@implementation NSData (MBBase64)
|
||||
|
||||
+ (id)dataWithBase64EncodedString:(NSString *)string;
|
||||
{
|
||||
if (string == nil)
|
||||
[NSException raise:NSInvalidArgumentException format:nil];
|
||||
if ([string length] == 0)
|
||||
return [NSData data];
|
||||
|
||||
static char *decodingTable = NULL;
|
||||
if (decodingTable == NULL)
|
||||
{
|
||||
decodingTable = malloc(256);
|
||||
if (decodingTable == NULL)
|
||||
return nil;
|
||||
memset(decodingTable, CHAR_MAX, 256);
|
||||
NSUInteger i;
|
||||
for (i = 0; i < 64; i++)
|
||||
decodingTable[(short)encodingTable[i]] = i;
|
||||
}
|
||||
|
||||
const char *characters = [string cStringUsingEncoding:NSASCIIStringEncoding];
|
||||
if (characters == NULL) // Not an ASCII string!
|
||||
return nil;
|
||||
char *bytes = malloc((([string length] + 3) / 4) * 3);
|
||||
if (bytes == NULL)
|
||||
return nil;
|
||||
NSUInteger length = 0;
|
||||
|
||||
NSUInteger i = 0;
|
||||
while (YES)
|
||||
{
|
||||
char buffer[4];
|
||||
short bufferLength;
|
||||
for (bufferLength = 0; bufferLength < 4; i++)
|
||||
{
|
||||
if (characters[i] == '\0')
|
||||
break;
|
||||
if (isspace(characters[i]) || characters[i] == '=')
|
||||
continue;
|
||||
buffer[bufferLength] = decodingTable[(short)characters[i]];
|
||||
if (buffer[bufferLength++] == CHAR_MAX) // Illegal character!
|
||||
{
|
||||
free(bytes);
|
||||
return nil;
|
||||
}
|
||||
}
|
||||
|
||||
if (bufferLength == 0)
|
||||
break;
|
||||
if (bufferLength == 1) // At least two characters are needed to produce one byte!
|
||||
{
|
||||
free(bytes);
|
||||
return nil;
|
||||
}
|
||||
|
||||
// Decode the characters in the buffer to bytes.
|
||||
bytes[length++] = (buffer[0] << 2) | (buffer[1] >> 4);
|
||||
if (bufferLength > 2)
|
||||
bytes[length++] = (buffer[1] << 4) | (buffer[2] >> 2);
|
||||
if (bufferLength > 3)
|
||||
bytes[length++] = (buffer[2] << 6) | buffer[3];
|
||||
}
|
||||
|
||||
realloc(bytes, length);
|
||||
return [NSData dataWithBytesNoCopy:bytes length:length];
|
||||
}
|
||||
|
||||
- (NSString *)base64Encoding;
|
||||
{
|
||||
if ([self length] == 0)
|
||||
return @"";
|
||||
|
||||
char *characters = malloc((([self length] + 2) / 3) * 4);
|
||||
if (characters == NULL)
|
||||
return nil;
|
||||
NSUInteger length = 0;
|
||||
|
||||
NSUInteger i = 0;
|
||||
while (i < [self length])
|
||||
{
|
||||
char buffer[3] = {0,0,0};
|
||||
short bufferLength = 0;
|
||||
while (bufferLength < 3 && i < [self length])
|
||||
buffer[bufferLength++] = ((char *)[self bytes])[i++];
|
||||
|
||||
// Encode the bytes in the buffer to four characters, including padding "=" characters if necessary.
|
||||
characters[length++] = encodingTable[(buffer[0] & 0xFC) >> 2];
|
||||
characters[length++] = encodingTable[((buffer[0] & 0x03) << 4) | ((buffer[1] & 0xF0) >> 4)];
|
||||
if (bufferLength > 1)
|
||||
characters[length++] = encodingTable[((buffer[1] & 0x0F) << 2) | ((buffer[2] & 0xC0) >> 6)];
|
||||
else characters[length++] = '=';
|
||||
if (bufferLength > 2)
|
||||
characters[length++] = encodingTable[buffer[2] & 0x3F];
|
||||
else characters[length++] = '=';
|
||||
}
|
||||
|
||||
return [[[NSString alloc] initWithBytesNoCopy:characters length:length encoding:NSASCIIStringEncoding freeWhenDone:YES] autorelease];
|
||||
}
|
||||
|
||||
@end
|
|
@ -2,13 +2,13 @@
|
|||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1024</int>
|
||||
<string key="IBDocument.SystemVersion">10K540</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">1306</string>
|
||||
<string key="IBDocument.AppKitVersion">1038.36</string>
|
||||
<string key="IBDocument.HIToolboxVersion">461.00</string>
|
||||
<string key="IBDocument.SystemVersion">11A511</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">1617</string>
|
||||
<string key="IBDocument.AppKitVersion">1138</string>
|
||||
<string key="IBDocument.HIToolboxVersion">566.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">301</string>
|
||||
<string key="NS.object.0">534</string>
|
||||
</object>
|
||||
<object class="NSArray" key="IBDocument.IntegratedClassDependencies">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
|
@ -51,7 +51,7 @@
|
|||
<object class="IBUILabel" id="750430533">
|
||||
<reference key="NSNextResponder" ref="994014136"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{172, 39}, {119, 15}}</string>
|
||||
<string key="NSFrame">{{172, 44}, {119, 15}}</string>
|
||||
<reference key="NSSuperview" ref="994014136"/>
|
||||
<reference key="NSWindow"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor" id="932003208">
|
||||
|
@ -87,7 +87,7 @@
|
|||
<object class="IBUILabel" id="417683225">
|
||||
<reference key="NSNextResponder" ref="994014136"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 5}, {271, 31}}</string>
|
||||
<string key="NSFrame">{{20, 7}, {271, 34}}</string>
|
||||
<reference key="NSSuperview" ref="994014136"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="IBUIBackgroundColor" ref="932003208"/>
|
||||
|
@ -98,7 +98,7 @@
|
|||
<string key="IBUIText">Long label with a story title the size of Texas.</string>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">12</double>
|
||||
<double key="NSSize">14</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUITextColor">
|
||||
|
@ -118,7 +118,7 @@
|
|||
<object class="IBUILabel" id="194816084">
|
||||
<reference key="NSNextResponder" ref="994014136"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 39}, {150, 15}}</string>
|
||||
<string key="NSFrame">{{20, 44}, {150, 15}}</string>
|
||||
<reference key="NSSuperview" ref="994014136"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="IBUIBackgroundColor" ref="878586146"/>
|
||||
|
@ -141,7 +141,7 @@
|
|||
<object class="IBUIImageView" id="523799572">
|
||||
<reference key="NSNextResponder" ref="994014136"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{2, 13}, {16, 16}}</string>
|
||||
<string key="NSFrame">{{2, 16}, {16, 16}}</string>
|
||||
<reference key="NSSuperview" ref="994014136"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="IBUIAutoresizesSubviews">NO</bool>
|
||||
|
@ -149,7 +149,7 @@
|
|||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSFrameSize">{300, 59}</string>
|
||||
<string key="NSFrameSize">{300, 64}</string>
|
||||
<reference key="NSSuperview" ref="749780469"/>
|
||||
<reference key="NSWindow"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
|
@ -163,7 +163,7 @@
|
|||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSFrameSize">{320, 59}</string>
|
||||
<string key="NSFrameSize">{320, 64}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="IBUIBackgroundColor" ref="932003208"/>
|
||||
|
@ -271,9 +271,10 @@
|
|||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>-1.CustomClassName</string>
|
||||
<string>-1.IBPluginDependency</string>
|
||||
<string>-2.CustomClassName</string>
|
||||
<string>-2.IBPluginDependency</string>
|
||||
<string>2.CustomClassName</string>
|
||||
<string>2.IBEditorWindowLastContentRect</string>
|
||||
<string>2.IBPluginDependency</string>
|
||||
<string>3.IBPluginDependency</string>
|
||||
<string>5.IBPluginDependency</string>
|
||||
|
@ -283,9 +284,10 @@
|
|||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>FeedDetailTableCell</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>UIResponder</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>FeedDetailTableCell</string>
|
||||
<string>{{579, 440}, {320, 55}}</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
|
@ -378,6 +380,6 @@
|
|||
</object>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<string key="IBCocoaTouchPluginVersion">301</string>
|
||||
<string key="IBCocoaTouchPluginVersion">534</string>
|
||||
</data>
|
||||
</archive>
|
||||
|
|
|
@ -10,9 +10,10 @@
|
|||
#import "NewsBlurAppDelegate.h"
|
||||
#import "FeedDetailTableCell.h"
|
||||
#import "ASIFormDataRequest.h"
|
||||
#import "GTMNString+HTML.h"
|
||||
#import "JSON.h"
|
||||
|
||||
#define kTableViewRowHeight 60;
|
||||
#define kTableViewRowHeight 65;
|
||||
|
||||
@implementation FeedDetailViewController
|
||||
|
||||
|
@ -250,7 +251,9 @@
|
|||
} else {
|
||||
cell.storyAuthor.text = @"";
|
||||
}
|
||||
cell.storyTitle.text = [story objectForKey:@"story_title"];
|
||||
NSString *title = [story objectForKey:@"story_title"];
|
||||
// cell.storyTitle.text = [title stringByDecodingHTMLEntities];
|
||||
cell.storyTitle.text = title;
|
||||
cell.storyDate.text = [story objectForKey:@"short_parsed_date"];
|
||||
int score = [NewsBlurAppDelegate computeStoryScore:[story objectForKey:@"intelligence"]];
|
||||
if (score > 0) {
|
||||
|
@ -264,7 +267,7 @@
|
|||
if ([[story objectForKey:@"read_status"] intValue] != 1) {
|
||||
// Unread story
|
||||
cell.storyTitle.textColor = [UIColor colorWithRed:0.1f green:0.1f blue:0.1f alpha:1.0];
|
||||
cell.storyTitle.font = [UIFont fontWithName:@"Helvetica-Bold" size:12];
|
||||
cell.storyTitle.font = [UIFont fontWithName:@"Helvetica-Bold" size:13];
|
||||
cell.storyAuthor.textColor = [UIColor colorWithRed:0.58f green:0.58f blue:0.58f alpha:1.0];
|
||||
cell.storyAuthor.font = [UIFont fontWithName:@"Helvetica-Bold" size:10];
|
||||
cell.storyDate.textColor = [UIColor colorWithRed:0.14f green:0.18f blue:0.42f alpha:1.0];
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
IBOutlet UISlider * feedScoreSlider;
|
||||
IBOutlet UIBarButtonItem * logoutButton;
|
||||
IBOutlet UISegmentedControl * intelligenceControl;
|
||||
IBOutlet UIBarButtonItem * sitesButton;
|
||||
}
|
||||
|
||||
- (void)fetchFeedList;
|
||||
|
@ -36,12 +37,14 @@
|
|||
- (void)updateFeedsWithIntelligence:(int)previousLevel newLevel:(int)newLevel;
|
||||
- (void)calculateFeedLocations;
|
||||
+ (int)computeMaxScoreForFeed:(NSDictionary *)feed;
|
||||
- (IBAction)switchSitesUnread;
|
||||
|
||||
@property (nonatomic, retain) IBOutlet NewsBlurAppDelegate *appDelegate;
|
||||
@property (nonatomic, retain) IBOutlet UITableView *feedTitlesTable;
|
||||
@property (nonatomic, retain) IBOutlet UIToolbar *feedViewToolbar;
|
||||
@property (nonatomic, retain) IBOutlet UISlider * feedScoreSlider;
|
||||
@property (nonatomic, retain) IBOutlet UIBarButtonItem * logoutButton;
|
||||
@property (nonatomic, retain) IBOutlet UIBarButtonItem * sitesButton;
|
||||
@property (nonatomic, retain) NSMutableArray *dictFoldersArray;
|
||||
@property (nonatomic, retain) NSMutableDictionary *activeFeedLocations;
|
||||
@property (nonatomic, retain) NSDictionary *dictFolders;
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#import "NewsBlurViewController.h"
|
||||
#import "NewsBlurAppDelegate.h"
|
||||
#import "FeedTableCell.h"
|
||||
#import "Base64.h"
|
||||
#import "JSON.h"
|
||||
|
||||
#define kTableViewRowHeight 40;
|
||||
|
@ -24,6 +25,7 @@
|
|||
@synthesize logoutButton;
|
||||
@synthesize intelligenceControl;
|
||||
@synthesize activeFeedLocations;
|
||||
@synthesize sitesButton;
|
||||
|
||||
@synthesize dictFolders;
|
||||
@synthesize dictFeeds;
|
||||
|
@ -111,6 +113,7 @@
|
|||
[logoutButton release];
|
||||
[intelligenceControl release];
|
||||
[activeFeedLocations release];
|
||||
[sitesButton release];
|
||||
|
||||
[dictFolders release];
|
||||
[dictFeeds release];
|
||||
|
@ -123,7 +126,7 @@
|
|||
|
||||
- (void)fetchFeedList {
|
||||
NSURL *urlFeedList = [NSURL URLWithString:[NSString
|
||||
stringWithFormat:@"http://www.newsblur.com/reader/feeds?flat=true&favicons=true"]];
|
||||
stringWithFormat:@"http://www.newsblur.com/reader/feeds?flat=true&include_favicons=true"]];
|
||||
responseData = [[NSMutableData data] retain];
|
||||
NSURLRequest *request = [[NSURLRequest alloc] initWithURL: urlFeedList];
|
||||
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
|
||||
|
@ -206,6 +209,10 @@
|
|||
[ld release];
|
||||
}
|
||||
|
||||
- (IBAction)switchSitesUnread {
|
||||
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Table View - Feed List
|
||||
|
||||
|
@ -247,11 +254,16 @@
|
|||
NSString *feedIdStr = [NSString stringWithFormat:@"%@",feedId];
|
||||
NSDictionary *feed = [self.dictFeeds objectForKey:feedIdStr];
|
||||
cell.feedTitle.text = [feed objectForKey:@"feed_title"];
|
||||
NSURL *url = [NSURL URLWithString:[feed objectForKey:@"favicon"]];
|
||||
if (url) {
|
||||
NSData *imageData = [NSData dataWithContentsOfURL:url];
|
||||
|
||||
NSString *favicon = [feed objectForKey:@"favicon"];
|
||||
NSLog(@"Favicon for %@: %d", [feed objectForKey:@"feed_title"], [favicon length]);
|
||||
if ([favicon length] > 0) {
|
||||
NSData *imageData = [NSData dataWithBase64EncodedString:favicon];
|
||||
cell.feedFavicon.image = [UIImage imageWithData:imageData];
|
||||
} else {
|
||||
cell.feedFavicon.image = [UIImage imageNamed:@"world.png"];
|
||||
}
|
||||
|
||||
[cell.feedUnreadView loadHTMLString:[self showUnreadCount:feed] baseURL:nil];
|
||||
|
||||
return cell;
|
||||
|
@ -371,7 +383,7 @@
|
|||
} else if (previousLevel == 1) {
|
||||
if (newLevel == 0 && maxScore == 0) {
|
||||
[insertIndexPaths addObject:indexPath];
|
||||
} else if (newLevel == -1 && maxScore > -1) {
|
||||
} else if (newLevel == -1 && (maxScore == -1 || maxScore == 0)) {
|
||||
[insertIndexPaths addObject:indexPath];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -54,6 +54,8 @@
|
|||
FF1C46C213E6003300E7609E /* logo_114.png in Resources */ = {isa = PBXBuildFile; fileRef = FF1C46C113E6003300E7609E /* logo_114.png */; };
|
||||
FF38679B13D88EEC00F8AB3A /* NSString+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = FF38679A13D88EEC00F8AB3A /* NSString+HTML.m */; };
|
||||
FF38679E13D8914A00F8AB3A /* GTMNString+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = FF38679D13D8914A00F8AB3A /* GTMNString+HTML.m */; };
|
||||
FF435EDB13E9AF4A0083043F /* Base64.m in Sources */ = {isa = PBXBuildFile; fileRef = FF435EDA13E9AF4A0083043F /* Base64.m */; };
|
||||
FF435EDE13E9B04E0083043F /* world.png in Resources */ = {isa = PBXBuildFile; fileRef = FF435EDD13E9B04E0083043F /* world.png */; };
|
||||
FFCE7AE813D49165009A98F6 /* FeedTableCell.m in Sources */ = {isa = PBXBuildFile; fileRef = FFCE7AE613D49165009A98F6 /* FeedTableCell.m */; };
|
||||
FFCE7AE913D49165009A98F6 /* FeedTableCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = FFCE7AE713D49165009A98F6 /* FeedTableCell.xib */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
@ -137,6 +139,9 @@
|
|||
FF38679C13D8914A00F8AB3A /* GTMNString+HTML.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "GTMNString+HTML.h"; sourceTree = "<group>"; };
|
||||
FF38679D13D8914A00F8AB3A /* GTMNString+HTML.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "GTMNString+HTML.m"; sourceTree = "<group>"; };
|
||||
FF38679F13D8916E00F8AB3A /* GTMDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GTMDefines.h; sourceTree = "<group>"; };
|
||||
FF435ED913E9AF4A0083043F /* Base64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Base64.h; sourceTree = "<group>"; };
|
||||
FF435EDA13E9AF4A0083043F /* Base64.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Base64.m; sourceTree = "<group>"; };
|
||||
FF435EDD13E9B04E0083043F /* world.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = world.png; sourceTree = "<group>"; };
|
||||
FFCE7AE513D49165009A98F6 /* FeedTableCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FeedTableCell.h; path = ../NewsBlur.xcodeproj/FeedTableCell.h; sourceTree = "<group>"; };
|
||||
FFCE7AE613D49165009A98F6 /* FeedTableCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FeedTableCell.m; path = ../NewsBlur.xcodeproj/FeedTableCell.m; sourceTree = "<group>"; };
|
||||
FFCE7AE713D49165009A98F6 /* FeedTableCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = FeedTableCell.xib; path = ../NewsBlur.xcodeproj/FeedTableCell.xib; sourceTree = "<group>"; };
|
||||
|
@ -222,6 +227,8 @@
|
|||
FF38679F13D8916E00F8AB3A /* GTMDefines.h */,
|
||||
FF38679D13D8914A00F8AB3A /* GTMNString+HTML.m */,
|
||||
FF38679A13D88EEC00F8AB3A /* NSString+HTML.m */,
|
||||
FF435ED913E9AF4A0083043F /* Base64.h */,
|
||||
FF435EDA13E9AF4A0083043F /* Base64.m */,
|
||||
);
|
||||
name = "Other Sources";
|
||||
sourceTree = "<group>";
|
||||
|
@ -229,6 +236,7 @@
|
|||
29B97317FDCFA39411CA2CEA /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
FF435EDD13E9B04E0083043F /* world.png */,
|
||||
FF1C46C113E6003300E7609E /* logo_114.png */,
|
||||
FF1C46BF13E6002300E7609E /* logo_57.png */,
|
||||
FF1C46BD13E5E9BD00E7609E /* Default@2x.png */,
|
||||
|
@ -384,6 +392,7 @@
|
|||
FF1C46BE13E5E9BD00E7609E /* Default@2x.png in Resources */,
|
||||
FF1C46C013E6002300E7609E /* logo_57.png in Resources */,
|
||||
FF1C46C213E6003300E7609E /* logo_114.png in Resources */,
|
||||
FF435EDE13E9B04E0083043F /* world.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -418,6 +427,7 @@
|
|||
FFCE7AE813D49165009A98F6 /* FeedTableCell.m in Sources */,
|
||||
FF38679B13D88EEC00F8AB3A /* NSString+HTML.m in Sources */,
|
||||
FF38679E13D8914A00F8AB3A /* GTMNString+HTML.m in Sources */,
|
||||
FF435EDB13E9AF4A0083043F /* Base64.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
|
@ -107,7 +107,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAACAgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
|||
<string key="NSFrame">{{153, 8}, {161, 30}}</string>
|
||||
<reference key="NSSuperview" ref="895374018"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBSegmentControlStyle">2</int>
|
||||
<int key="IBNumberOfSegments">3</int>
|
||||
|
@ -259,6 +258,22 @@ AAMAAAABAAEAAAFTAAMAAAAEAAACAgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
|||
</object>
|
||||
<int key="connectionID">66</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">switchSitesUnread</string>
|
||||
<reference key="source" ref="240724681"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
</object>
|
||||
<int key="connectionID">67</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">sitesButton</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="240724681"/>
|
||||
</object>
|
||||
<int key="connectionID">68</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<object class="NSArray" key="orderedObjects">
|
||||
|
@ -285,8 +300,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAACAgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
|||
<reference key="object" ref="774585933"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="895374018"/>
|
||||
<reference ref="224086083"/>
|
||||
<reference ref="895374018"/>
|
||||
</object>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
|
@ -378,7 +393,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAACAgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
|||
<reference key="dict.values" ref="0"/>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">66</int>
|
||||
<int key="maxID">68</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
|
@ -640,11 +655,13 @@ AAMAAAABAAEAAAFTAAMAAAAEAAACAgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
|||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>doLogoutButton</string>
|
||||
<string>selectIntelligence</string>
|
||||
<string>switchSitesUnread</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||
|
@ -653,6 +670,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAACAgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
|||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>doLogoutButton</string>
|
||||
<string>selectIntelligence</string>
|
||||
<string>switchSitesUnread</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
|
@ -664,6 +682,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAACAgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
|||
<string key="name">selectIntelligence</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo">
|
||||
<string key="name">switchSitesUnread</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
|
@ -676,6 +698,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAACAgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
|||
<string>feedViewToolbar</string>
|
||||
<string>intelligenceControl</string>
|
||||
<string>logoutButton</string>
|
||||
<string>sitesButton</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
|
@ -685,6 +708,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAACAgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
|||
<string>UIToolbar</string>
|
||||
<string>UISegmentedControl</string>
|
||||
<string>UIBarButtonItem</string>
|
||||
<string>UIBarButtonItem</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
|
@ -697,6 +721,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAACAgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
|||
<string>feedViewToolbar</string>
|
||||
<string>intelligenceControl</string>
|
||||
<string>logoutButton</string>
|
||||
<string>sitesButton</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
|
@ -724,6 +749,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAACAgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
|||
<string key="name">logoutButton</string>
|
||||
<string key="candidateClassName">UIBarButtonItem</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">sitesButton</string>
|
||||
<string key="candidateClassName">UIBarButtonItem</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
|
|
BIN
media/iphone/world.png
Executable file
BIN
media/iphone/world.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 888 B |
Loading…
Add table
Reference in a new issue