mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-09-18 21:50:56 +00:00
Users work while offline. Also adding messaging for offline sharing/replying errors.
This commit is contained in:
parent
651f4b7f4d
commit
bd264f9921
14 changed files with 120 additions and 64 deletions
|
@ -216,7 +216,7 @@ static const NSUInteger kDomainSection = 1;
|
|||
|
||||
+ (void)dismiss
|
||||
{
|
||||
[[sharedDialog parentViewController] dismissModalViewControllerAnimated:YES];
|
||||
[[sharedDialog parentViewController] dismissViewControllerAnimated:YES completion:nil];
|
||||
}
|
||||
|
||||
- (void)viewDidDisappear:(BOOL)animated
|
||||
|
@ -233,7 +233,7 @@ static const NSUInteger kDomainSection = 1;
|
|||
if (self == sharedDialog) {
|
||||
[[self class] dismiss];
|
||||
} else {
|
||||
[[self parentViewController] dismissModalViewControllerAnimated:YES];
|
||||
[[self parentViewController] dismissViewControllerAnimated:YES completion:nil];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -309,7 +309,7 @@ static const NSUInteger kDomainSection = 1;
|
|||
}
|
||||
#endif
|
||||
|
||||
[[self presentingController] presentModalViewController:self animated:YES];
|
||||
[[self presentingController] dismissViewControllerAnimated:self completion:nil];
|
||||
}
|
||||
|
||||
#pragma mark button callbacks
|
||||
|
|
|
@ -76,7 +76,7 @@
|
|||
|
||||
- (void)doCancelButton {
|
||||
[appDelegate.shareViewController adjustShareButtons];
|
||||
[appDelegate.modalNavigationController dismissModalViewControllerAnimated:YES];
|
||||
[appDelegate.modalNavigationController dismissViewControllerAnimated:YES completion:nil];
|
||||
}
|
||||
|
||||
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
|
||||
|
@ -90,7 +90,7 @@
|
|||
[appDelegate refreshUserProfile:^{
|
||||
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
|
||||
[appDelegate.shareNavigationController viewWillAppear:YES];
|
||||
[appDelegate.modalNavigationController dismissModalViewControllerAnimated:YES];
|
||||
[appDelegate.modalNavigationController dismissViewControllerAnimated:YES completion:nil];
|
||||
} else {
|
||||
[self.navigationController popViewControllerAnimated:YES];
|
||||
}
|
||||
|
|
|
@ -258,6 +258,7 @@
|
|||
- (void)setupReachability;
|
||||
|
||||
// social
|
||||
- (NSDictionary *)getUser:(int)userId;
|
||||
- (void)showUserProfileModal:(id)sender;
|
||||
- (void)pushUserProfile;
|
||||
- (void)hideUserProfileModal;
|
||||
|
@ -354,6 +355,7 @@
|
|||
- (void)startOfflineFetchStories;
|
||||
- (void)startOfflineFetchImages;
|
||||
- (BOOL)isReachabileForOffline;
|
||||
- (void)storeUserProfiles:(NSArray *)userProfiles;
|
||||
- (void)queueReadStories:(NSDictionary *)feedsStories;
|
||||
- (void)flushQueuedReadStories:(BOOL)forceCheck withCallback:(void(^)())callback;
|
||||
- (void)syncQueuedReadStories:(FMDatabase *)db withStories:(NSDictionary *)hashes withCallback:(void(^)())callback;
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
|
||||
@implementation NewsBlurAppDelegate
|
||||
|
||||
#define CURRENT_DB_VERSION 25
|
||||
#define CURRENT_DB_VERSION 29
|
||||
#define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )
|
||||
|
||||
@synthesize window;
|
||||
|
@ -341,6 +341,30 @@
|
|||
#pragma mark -
|
||||
#pragma mark Social Views
|
||||
|
||||
- (NSDictionary *)getUser:(int)userId {
|
||||
for (int i = 0; i < self.activeFeedUserProfiles.count; i++) {
|
||||
if ([[[self.activeFeedUserProfiles objectAtIndex:i] objectForKey:@"user_id"] intValue] == userId) {
|
||||
return [self.activeFeedUserProfiles objectAtIndex:i];
|
||||
}
|
||||
}
|
||||
|
||||
// Check DB if not found in active feed
|
||||
__block NSDictionary *user;
|
||||
[self.database inDatabase:^(FMDatabase *db) {
|
||||
NSString *userSql = [NSString stringWithFormat:@"SELECT * FROM users WHERE user_id = %d", userId];
|
||||
FMResultSet *cursor = [db executeQuery:userSql];
|
||||
while ([cursor next]) {
|
||||
user = [NSJSONSerialization
|
||||
JSONObjectWithData:[[cursor stringForColumn:@"user_json"]
|
||||
dataUsingEncoding:NSUTF8StringEncoding]
|
||||
options:nil error:nil];
|
||||
if (user) break;
|
||||
}
|
||||
}];
|
||||
|
||||
return user;
|
||||
}
|
||||
|
||||
- (void)showUserProfileModal:(id)sender {
|
||||
UserProfileViewController *newUserProfile = [[UserProfileViewController alloc] init];
|
||||
self.userProfileViewController = newUserProfile;
|
||||
|
@ -2189,6 +2213,7 @@
|
|||
[db executeUpdate:@"drop table if exists `accounts`"];
|
||||
[db executeUpdate:@"drop table if exists `unread_counts`"];
|
||||
[db executeUpdate:@"drop table if exists `cached_images`"];
|
||||
[db executeUpdate:@"drop table if exists `users`"];
|
||||
// [db executeUpdate:@"drop table if exists `queued_read_hashes`"]; // Nope, don't clear this.
|
||||
NSLog(@"Dropped db: %@", [db lastErrorMessage]);
|
||||
sqlite3_exec(db.sqliteHandle, [[NSString stringWithFormat:@"PRAGMA user_version = %d", CURRENT_DB_VERSION] UTF8String], NULL, NULL, NULL);
|
||||
|
@ -2244,7 +2269,7 @@
|
|||
" UNIQUE(story_hash) ON CONFLICT IGNORE"
|
||||
")"];
|
||||
[db executeUpdate:createReadTable];
|
||||
|
||||
|
||||
NSString *createImagesTable = [NSString stringWithFormat:@"create table if not exists cached_images "
|
||||
"("
|
||||
" story_feed_id number,"
|
||||
|
@ -2259,6 +2284,21 @@
|
|||
NSString *indexImagesStoryHash = @"CREATE INDEX IF NOT EXISTS cached_images_story_hash ON cached_images (story_hash)";
|
||||
[db executeUpdate:indexImagesStoryHash];
|
||||
|
||||
|
||||
NSString *createUsersTable = [NSString stringWithFormat:@"create table if not exists users "
|
||||
"("
|
||||
" user_id number,"
|
||||
" username varchar(64),"
|
||||
" location varchar(128),"
|
||||
" image_url varchar(1024),"
|
||||
" image_cached boolean,"
|
||||
" user_json text,"
|
||||
" UNIQUE(user_id) ON CONFLICT REPLACE"
|
||||
")"];
|
||||
[db executeUpdate:createUsersTable];
|
||||
NSString *indexUsersUserId = @"CREATE INDEX IF NOT EXISTS users_user_id ON users (user_id)";
|
||||
[db executeUpdate:indexUsersUserId];
|
||||
|
||||
NSError *error;
|
||||
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
|
||||
NSString *storyImagesDirectory = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"story_images"];
|
||||
|
@ -2329,16 +2369,38 @@
|
|||
return YES;
|
||||
}
|
||||
|
||||
- (void)queueReadStories:(NSDictionary *)feedsStories {
|
||||
[self.database inTransaction:^(FMDatabase *db, BOOL *rollback) {
|
||||
for (NSString *feedIdStr in [feedsStories allKeys]) {
|
||||
for (NSString *storyHash in [feedsStories objectForKey:feedIdStr]) {
|
||||
[db executeUpdate:@"INSERT INTO queued_read_hashes "
|
||||
"(story_feed_id, story_hash) VALUES "
|
||||
"(?, ?)", feedIdStr, storyHash];
|
||||
- (void)storeUserProfiles:(NSArray *)userProfiles {
|
||||
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
|
||||
(unsigned long)NULL), ^(void) {
|
||||
[self.database inTransaction:^(FMDatabase *db, BOOL *rollback) {
|
||||
for (NSDictionary *user in userProfiles) {
|
||||
[db executeUpdate:@"INSERT INTO users "
|
||||
"(user_id, username, location, image_url, user_json) VALUES "
|
||||
"(?, ?, ?, ?, ?)",
|
||||
[user objectForKey:@"user_id"],
|
||||
[user objectForKey:@"username"],
|
||||
[user objectForKey:@"location"],
|
||||
[user objectForKey:@"photo_url"],
|
||||
[user JSONRepresentation]
|
||||
];
|
||||
}
|
||||
}
|
||||
}];
|
||||
}];
|
||||
});
|
||||
}
|
||||
|
||||
- (void)queueReadStories:(NSDictionary *)feedsStories {
|
||||
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
|
||||
(unsigned long)NULL), ^(void) {
|
||||
[self.database inTransaction:^(FMDatabase *db, BOOL *rollback) {
|
||||
for (NSString *feedIdStr in [feedsStories allKeys]) {
|
||||
for (NSString *storyHash in [feedsStories objectForKey:feedIdStr]) {
|
||||
[db executeUpdate:@"INSERT INTO queued_read_hashes "
|
||||
"(story_feed_id, story_hash) VALUES "
|
||||
"(?, ?)", feedIdStr, storyHash];
|
||||
}
|
||||
}
|
||||
}];
|
||||
});
|
||||
self.hasQueuedReadStories = YES;
|
||||
}
|
||||
|
||||
|
|
|
@ -953,7 +953,7 @@ static const CGFloat kFolderTitleHeight = 28;
|
|||
|
||||
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
|
||||
if (appDelegate.hasNoSites) {
|
||||
return 3;
|
||||
return 0;
|
||||
}
|
||||
return [appDelegate.dictFoldersArray count];
|
||||
}
|
||||
|
@ -974,24 +974,6 @@ static const CGFloat kFolderTitleHeight = 28;
|
|||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView
|
||||
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
|
||||
// messaging when there are no sites
|
||||
if (appDelegate.hasNoSites) {
|
||||
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"EmptyCell"];
|
||||
if (cell == nil) {
|
||||
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
|
||||
}
|
||||
cell.textLabel.font=[UIFont systemFontOfSize:14.0];
|
||||
cell.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||
if (indexPath.section == 0) {
|
||||
cell.textLabel.text = @"Tap the settings to find friends.";
|
||||
} else {
|
||||
cell.textLabel.text = @"Tap + to add sites.";
|
||||
}
|
||||
|
||||
return cell;
|
||||
}
|
||||
|
||||
NSString *folderName = [appDelegate.dictFoldersArray objectAtIndex:indexPath.section];
|
||||
id feedId = [[appDelegate.dictFolders objectForKey:folderName] objectAtIndex:indexPath.row];
|
||||
NSString *feedIdStr = [NSString stringWithFormat:@"%@",feedId];
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
#import <UIKit/UIKit.h>
|
||||
#import "NewsBlurAppDelegate.h"
|
||||
|
||||
@interface ShareViewController : UIViewController <ASIHTTPRequestDelegate, UITextViewDelegate> {
|
||||
@interface ShareViewController : BaseViewController <ASIHTTPRequestDelegate, UITextViewDelegate> {
|
||||
NewsBlurAppDelegate *appDelegate;
|
||||
NSString *activeReplyId;
|
||||
}
|
||||
|
|
|
@ -359,6 +359,10 @@
|
|||
options:kNilOptions
|
||||
error:&error];
|
||||
|
||||
if (request.responseStatusCode != 200) {
|
||||
return [self requestFailed:request];
|
||||
}
|
||||
|
||||
NSArray *userProfiles = [results objectForKey:@"user_profiles"];
|
||||
appDelegate.activeFeedUserProfiles = [DataUtilities
|
||||
updateUserProfiles:appDelegate.activeFeedUserProfiles
|
||||
|
@ -411,15 +415,28 @@
|
|||
JSONObjectWithData:responseData
|
||||
options:kNilOptions
|
||||
error:&error];
|
||||
|
||||
if (request.responseStatusCode != 200) {
|
||||
return [self requestFailed:request];
|
||||
}
|
||||
|
||||
// add the comment into the activeStory dictionary
|
||||
NSDictionary *newStory = [DataUtilities updateComment:results for:appDelegate];
|
||||
[self replaceStory:newStory withReplyId:[results objectForKey:@"reply_id"]];
|
||||
}
|
||||
|
||||
- (void)requestFailed:(ASIHTTPRequest *)request {
|
||||
NSError *error = [request error];
|
||||
NSString *error;
|
||||
|
||||
[MBProgressHUD hideHUDForView:appDelegate.storyPageControl.view animated:NO];
|
||||
|
||||
if ([request error]) {
|
||||
error = [NSString stringWithFormat:@"%@", [request error]];
|
||||
} else {
|
||||
error = @"The server barfed!";
|
||||
}
|
||||
NSLog(@"Error: %@", error);
|
||||
[appDelegate informError:error];
|
||||
[appDelegate.storyPageControl.currentPage informError:error];
|
||||
}
|
||||
|
||||
- (void)replaceStory:(NSDictionary *)newStory withReplyId:(NSString *)replyId {
|
||||
|
|
|
@ -68,7 +68,6 @@
|
|||
- (NSString *)getComment:(NSDictionary *)commentDict;
|
||||
- (NSString *)getReplies:(NSArray *)replies forUserId:(NSString *)commentUserId;
|
||||
- (NSString *)getAvatars:(NSString *)key;
|
||||
- (NSDictionary *)getUser:(int)user_id;
|
||||
- (void)refreshHeader;
|
||||
|
||||
- (void)fetchTextView;
|
||||
|
|
|
@ -370,7 +370,7 @@
|
|||
NSArray *shareUserIds = [self.activeStory objectForKey:key];
|
||||
|
||||
for (int i = 0; i < shareUserIds.count; i++) {
|
||||
NSDictionary *user = [self getUser:[[shareUserIds objectAtIndex:i] intValue]];
|
||||
NSDictionary *user = [appDelegate getUser:[[shareUserIds objectAtIndex:i] intValue]];
|
||||
NSString *avatarClass = @"NB-user-avatar";
|
||||
if ([key isEqualToString:@"commented_by_public"] ||
|
||||
[key isEqualToString:@"shared_by_public"]) {
|
||||
|
@ -520,7 +520,7 @@
|
|||
|
||||
- (NSString *)getComment:(NSDictionary *)commentDict {
|
||||
|
||||
NSDictionary *user = [self getUser:[[commentDict objectForKey:@"user_id"] intValue]];
|
||||
NSDictionary *user = [appDelegate getUser:[[commentDict objectForKey:@"user_id"] intValue]];
|
||||
NSString *userAvatarClass = @"NB-user-avatar";
|
||||
NSString *userReshareString = @"";
|
||||
NSString *userEditButton = @"";
|
||||
|
@ -533,7 +533,7 @@
|
|||
if ([likingUsersArray count]) {
|
||||
likingUsers = @"<div class=\"NB-story-comment-likes-icon\"></div>";
|
||||
for (NSNumber *likingUser in likingUsersArray) {
|
||||
NSDictionary *sourceUser = [self getUser:[likingUser intValue]];
|
||||
NSDictionary *sourceUser = [appDelegate getUser:[likingUser intValue]];
|
||||
NSString *likingUserString = [NSString stringWithFormat:@
|
||||
"<div class=\"NB-story-comment-likes-user\">"
|
||||
" <div class=\"NB-user-avatar\"><img src=\"%@\"></div>"
|
||||
|
@ -583,7 +583,7 @@
|
|||
if ([commentDict objectForKey:@"source_user_id"] != [NSNull null]) {
|
||||
userAvatarClass = @"NB-user-avatar NB-story-comment-reshare";
|
||||
|
||||
NSDictionary *sourceUser = [self getUser:[[commentDict objectForKey:@"source_user_id"] intValue]];
|
||||
NSDictionary *sourceUser = [appDelegate getUser:[[commentDict objectForKey:@"source_user_id"] intValue]];
|
||||
userReshareString = [NSString stringWithFormat:@
|
||||
"<div class=\"NB-story-comment-reshares\">"
|
||||
" <div class=\"NB-story-share-profile\">"
|
||||
|
@ -599,7 +599,7 @@
|
|||
NSString *locationHtml = @"";
|
||||
NSString *location = [NSString stringWithFormat:@"%@", [user objectForKey:@"location"]];
|
||||
|
||||
if (location.length) {
|
||||
if (location.length && ![[user objectForKey:@"location"] isKindOfClass:[NSNull class]]) {
|
||||
locationHtml = [NSString stringWithFormat:@"<div class=\"NB-story-comment-location\">%@</div>", location];
|
||||
}
|
||||
|
||||
|
@ -701,7 +701,7 @@
|
|||
repliesString = [repliesString stringByAppendingString:@"<div class=\"NB-story-comment-replies\">"];
|
||||
for (int i = 0; i < replies.count; i++) {
|
||||
NSDictionary *replyDict = [replies objectAtIndex:i];
|
||||
NSDictionary *user = [self getUser:[[replyDict objectForKey:@"user_id"] intValue]];
|
||||
NSDictionary *user = [appDelegate getUser:[[replyDict objectForKey:@"user_id"] intValue]];
|
||||
|
||||
NSString *userEditButton = @"";
|
||||
NSString *replyUserId = [NSString stringWithFormat:@"%@", [replyDict objectForKey:@"user_id"]];
|
||||
|
@ -788,15 +788,6 @@
|
|||
return repliesString;
|
||||
}
|
||||
|
||||
- (NSDictionary *)getUser:(int)user_id {
|
||||
for (int i = 0; i < appDelegate.activeFeedUserProfiles.count; i++) {
|
||||
if ([[[appDelegate.activeFeedUserProfiles objectAtIndex:i] objectForKey:@"user_id"] intValue] == user_id) {
|
||||
return [appDelegate.activeFeedUserProfiles objectAtIndex:i];
|
||||
}
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
|
||||
|
||||
if ([keyPath isEqual:@"contentOffset"]) {
|
||||
|
@ -1176,6 +1167,10 @@ shouldStartLoadWithRequest:(NSURLRequest *)request
|
|||
options:kNilOptions
|
||||
error:&error];
|
||||
|
||||
if (request.responseStatusCode != 200) {
|
||||
return [self requestFailed:request];
|
||||
}
|
||||
|
||||
// add the comment into the activeStory dictionary
|
||||
NSDictionary *newStory = [DataUtilities updateComment:results for:appDelegate];
|
||||
|
||||
|
@ -1206,6 +1201,9 @@ shouldStartLoadWithRequest:(NSURLRequest *)request
|
|||
- (void)requestFailed:(ASIHTTPRequest *)request {
|
||||
NSLog(@"Error in story detail: %@", [request error]);
|
||||
NSString *error;
|
||||
|
||||
[MBProgressHUD hideHUDForView:appDelegate.storyPageControl.view animated:NO];
|
||||
|
||||
if ([request error]) {
|
||||
error = [NSString stringWithFormat:@"%@", [request error]];
|
||||
} else {
|
||||
|
|
|
@ -213,7 +213,7 @@
|
|||
}
|
||||
|
||||
previousPage.view.hidden = YES;
|
||||
|
||||
self.traverseView.alpha = 1;
|
||||
UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;
|
||||
[self layoutForInterfaceOrientation:orientation];
|
||||
}
|
||||
|
|
|
@ -207,6 +207,8 @@
|
|||
}];
|
||||
|
||||
NSLog(@"Done inserting stories");
|
||||
|
||||
[appDelegate storeUserProfiles:[results objectForKey:@"user_profiles"]];
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -257,7 +257,6 @@
|
|||
FF5D40031799F53C00349659 /* VUDialogViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = FF5D3FF61799F53C00349659 /* VUDialogViewController.m */; };
|
||||
FF5D40041799F53C00349659 /* VUGradientButton.m in Sources */ = {isa = PBXBuildFile; fileRef = FF5D3FF81799F53C00349659 /* VUGradientButton.m */; };
|
||||
FF5D40051799F53C00349659 /* LICENSE in Resources */ = {isa = PBXBuildFile; fileRef = FF5D3FF91799F53C00349659 /* LICENSE */; };
|
||||
FF5D40061799F53C00349659 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = FF5D3FFA1799F53C00349659 /* README.md */; };
|
||||
FF5D40071799F53C00349659 /* PinboardActivityImage.png in Resources */ = {isa = PBXBuildFile; fileRef = FF5D3FFC1799F53C00349659 /* PinboardActivityImage.png */; };
|
||||
FF5D40081799F53C00349659 /* PinboardActivityImage@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = FF5D3FFD1799F53C00349659 /* PinboardActivityImage@2x.png */; };
|
||||
FF5D40101799F70200349659 /* ARChromeActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = FF5D400B1799F70200349659 /* ARChromeActivity.m */; };
|
||||
|
@ -326,7 +325,6 @@
|
|||
FFAF53681799D18B00C7FCCB /* UIImage+ImageNamedExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = FFAF534A1799D18B00C7FCCB /* UIImage+ImageNamedExtension.m */; };
|
||||
FFAF536E1799D18B00C7FCCB /* InstapaperActivityIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = FFAF53581799D18B00C7FCCB /* InstapaperActivityIcon.png */; };
|
||||
FFAF536F1799D18B00C7FCCB /* InstapaperActivityIcon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = FFAF53591799D18B00C7FCCB /* InstapaperActivityIcon@2x.png */; };
|
||||
FFAF53721799D18B00C7FCCB /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = FFAF53601799D18B00C7FCCB /* README.md */; };
|
||||
FFAF53731799D18B00C7FCCB /* ZYInstapaperActivityItem.m in Sources */ = {isa = PBXBuildFile; fileRef = FFAF53641799D18B00C7FCCB /* ZYInstapaperActivityItem.m */; };
|
||||
FFAF538F1799D1C800C7FCCB /* TUSafariActivity.strings in Resources */ = {isa = PBXBuildFile; fileRef = FFAF53751799D1C800C7FCCB /* TUSafariActivity.strings */; };
|
||||
FFAF53901799D1C800C7FCCB /* Safari.png in Resources */ = {isa = PBXBuildFile; fileRef = FFAF53851799D1C800C7FCCB /* Safari.png */; };
|
||||
|
@ -389,7 +387,6 @@
|
|||
FFDCA0B416E80866000D8E0C /* REComposeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = FFDCA0AE16E80866000D8E0C /* REComposeViewController.m */; };
|
||||
FFDCA0BB16E80877000D8E0C /* GCOAuth.m in Sources */ = {isa = PBXBuildFile; fileRef = FFDCA0B716E80877000D8E0C /* GCOAuth.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
|
||||
FFDCA0BC16E80877000D8E0C /* NSData+Base64.m in Sources */ = {isa = PBXBuildFile; fileRef = FFDCA0B916E80877000D8E0C /* NSData+Base64.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
|
||||
FFDCA0BD16E80877000D8E0C /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = FFDCA0BA16E80877000D8E0C /* README.md */; };
|
||||
FFDCA0BF16E80944000D8E0C /* Social.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FFDCA0BE16E80944000D8E0C /* Social.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
|
||||
FFDCA0C116E8094F000D8E0C /* Accounts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FFDCA0C016E8094F000D8E0C /* Accounts.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
|
||||
FFDCA0C316E80952000D8E0C /* AdSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FFDCA0C216E80952000D8E0C /* AdSupport.framework */; };
|
||||
|
@ -2386,7 +2383,6 @@
|
|||
FF688E5216E6B8D0003B7B42 /* traverse_background.png in Resources */,
|
||||
FF688E5316E6B8D0003B7B42 /* traverse_background@2x.png in Resources */,
|
||||
FFDCA0B316E80866000D8E0C /* REComposeViewController.bundle in Resources */,
|
||||
FFDCA0BD16E80877000D8E0C /* README.md in Resources */,
|
||||
FFDD845C16E8871A000AA0A2 /* menu_icn_delete.png in Resources */,
|
||||
FFDD845D16E8871A000AA0A2 /* menu_icn_delete@2x.png in Resources */,
|
||||
FFDD845E16E8871A000AA0A2 /* menu_icn_fetch_subscribers.png in Resources */,
|
||||
|
@ -2439,7 +2435,6 @@
|
|||
FF855B571794A53A0098D48A /* checkmark@2x.png in Resources */,
|
||||
FFAF536E1799D18B00C7FCCB /* InstapaperActivityIcon.png in Resources */,
|
||||
FFAF536F1799D18B00C7FCCB /* InstapaperActivityIcon@2x.png in Resources */,
|
||||
FFAF53721799D18B00C7FCCB /* README.md in Resources */,
|
||||
FFAF538F1799D1C800C7FCCB /* TUSafariActivity.strings in Resources */,
|
||||
FFAF53901799D1C800C7FCCB /* Safari.png in Resources */,
|
||||
FFAF53911799D1C800C7FCCB /* Safari@2x.png in Resources */,
|
||||
|
@ -2454,7 +2449,6 @@
|
|||
FFAF53B81799E69D00C7FCCB /* Readability-activity-iPhone.png in Resources */,
|
||||
FFAF53B91799E69D00C7FCCB /* Readability-activity-iPhone@2x.png in Resources */,
|
||||
FF5D40051799F53C00349659 /* LICENSE in Resources */,
|
||||
FF5D40061799F53C00349659 /* README.md in Resources */,
|
||||
FF5D40071799F53C00349659 /* PinboardActivityImage.png in Resources */,
|
||||
FF5D40081799F53C00349659 /* PinboardActivityImage@2x.png in Resources */,
|
||||
FF5D40111799F70200349659 /* ARChromeActivity.png in Resources */,
|
||||
|
|
|
@ -490,8 +490,8 @@ CGRect IASKCGRectSwap(CGRect rect);
|
|||
} else {
|
||||
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
|
||||
}
|
||||
cell.textLabel.minimumFontSize = kIASKMinimumFontSize;
|
||||
cell.detailTextLabel.minimumFontSize = kIASKMinimumFontSize;
|
||||
cell.textLabel.minimumScaleFactor = kIASKMinimumFontSize/[UIFont labelFontSize];
|
||||
cell.detailTextLabel.minimumScaleFactor = kIASKMinimumFontSize/[UIFont labelFontSize];
|
||||
return cell;
|
||||
}
|
||||
|
||||
|
|
|
@ -104,7 +104,7 @@ static NSString* const kServiceName = @"pinboard.in";
|
|||
[sself.activity activityDidFinish:success];
|
||||
|
||||
if (!success) {
|
||||
[self.activity presentError:error];
|
||||
[sself.activity presentError:error];
|
||||
}
|
||||
}];
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue