From ac469a8d2fb9da1f90bbc8903a5ff0565cdc8dc8 Mon Sep 17 00:00:00 2001 From: Tom Date: Thu, 5 Dec 2013 09:18:30 -0800 Subject: [PATCH 1/8] Fixed issue where notifications view would persistently show refresh control --- WordPress/Classes/NotificationsViewController.m | 4 ++++ WordPress/Classes/WPTableViewController.m | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/WordPress/Classes/NotificationsViewController.m b/WordPress/Classes/NotificationsViewController.m index 9e17ee26181d..ca66c2cab26c 100644 --- a/WordPress/Classes/NotificationsViewController.m +++ b/WordPress/Classes/NotificationsViewController.m @@ -235,6 +235,10 @@ - (void)configureCell:(NewNotificationsTableViewCell *)cell atIndexPath:(NSIndex cell.note = [self.resultsController objectAtIndexPath:indexPath]; } +- (BOOL)userCanRefresh { + return self.user != nil; +} + - (void)syncItemsViaUserInteractionWithSuccess:(void (^)())success failure:(void (^)(NSError *))failure { [self pruneOldNotes]; [self syncItemsWithSuccess:success failure:failure]; diff --git a/WordPress/Classes/WPTableViewController.m b/WordPress/Classes/WPTableViewController.m index 425dba81fabe..42afc683f181 100644 --- a/WordPress/Classes/WPTableViewController.m +++ b/WordPress/Classes/WPTableViewController.m @@ -453,11 +453,20 @@ - (void)controller:(NSFetchedResultsController *)controller didChangeSection:(id #pragma mark - UIRefreshControl Methods - (void)refresh { + + if (![self userCanRefresh]) { + [self.refreshControl endRefreshing]; + return; + } + didTriggerRefresh = YES; [self syncItemsViaUserInteraction]; [noResultsView removeFromSuperview]; } +- (BOOL)userCanRefresh { + return YES; +} #pragma mark - UIScrollViewDelegate Methods From f70db06cf853a6ce8804e1ed7cc89c0118f07416 Mon Sep 17 00:00:00 2001 From: Tom Date: Thu, 5 Dec 2013 10:20:14 -0800 Subject: [PATCH 2/8] Added ability to add button to WPNoResultsView --- WordPress/Classes/WPNoResultsView.h | 17 ++++++-- WordPress/Classes/WPNoResultsView.m | 64 ++++++++++++++++++++++++++--- 2 files changed, 72 insertions(+), 9 deletions(-) diff --git a/WordPress/Classes/WPNoResultsView.h b/WordPress/Classes/WPNoResultsView.h index e97ca0c19b62..c000b0cce4c3 100644 --- a/WordPress/Classes/WPNoResultsView.h +++ b/WordPress/Classes/WPNoResultsView.h @@ -8,11 +8,22 @@ #import -@interface WPNoResultsView : UIView +@class WPNoResultsView; +@protocol WPNoResultsViewDelegate -+ (WPNoResultsView *)noResultsViewWithTitle:(NSString *)titleText message:(NSString *)messageText accessoryView:(UIView *)accessoryView; +@optional +- (void)noResultsViewButtonWasTapped:(WPNoResultsView *)noResultsView; +@end + +@interface WPNoResultsView : UIView { + id delegate; +} + +@property (nonatomic, assign) id delegate; + ++ (WPNoResultsView *)noResultsViewWithTitle:(NSString *)titleText message:(NSString *)messageText accessoryView:(UIView *)accessoryView buttonTitle:(NSString *)buttonTitle; -- (void)setupWithTitle:(NSString *)titleText message:(NSString *)messageText accessoryView:(UIView *)accessoryView; +- (void)setupWithTitle:(NSString *)titleText message:(NSString *)messageText accessoryView:(UIView *)accessoryView buttonTitle:(NSString *)buttonTitle; - (void)showInView:(UIView *)view; - (void)centerInSuperview; diff --git a/WordPress/Classes/WPNoResultsView.m b/WordPress/Classes/WPNoResultsView.m index fe5c15e1c184..6e3400ac43ce 100644 --- a/WordPress/Classes/WPNoResultsView.m +++ b/WordPress/Classes/WPNoResultsView.m @@ -15,6 +15,7 @@ @interface WPNoResultsView () @property (nonatomic, copy) UILabel *titleLabel; @property (nonatomic, copy) UILabel *messageLabel; @property (nonatomic, copy) UIView *accessoryView; +@property (nonatomic, copy) UIButton *button; @end @implementation WPNoResultsView @@ -22,10 +23,10 @@ @implementation WPNoResultsView #pragma mark - #pragma mark Lifecycle Methods -+ (WPNoResultsView *)noResultsViewWithTitle:(NSString *)titleText message:(NSString *)messageText accessoryView:(UIView *)accessoryView { ++ (WPNoResultsView *)noResultsViewWithTitle:(NSString *)titleText message:(NSString *)messageText accessoryView:(UIView *)accessoryView buttonTitle:(NSString *)buttonTitle { WPNoResultsView *view = [[WPNoResultsView alloc] init]; - [view setupWithTitle:titleText message:messageText accessoryView:accessoryView]; + [view setupWithTitle:titleText message:messageText accessoryView:accessoryView buttonTitle:buttonTitle]; return view; } @@ -38,6 +39,15 @@ - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; } +- (id)delegate +{ + return delegate; +} +- (void)setDelegate:(id)newDelegate +{ + delegate = newDelegate; +} + - (void)layoutSubviews { CGFloat width = 270.0; @@ -51,9 +61,17 @@ - (void)layoutSubviews { CGSize messageSize = [_messageLabel.text boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName: _messageLabel.font} context:nil].size; _messageLabel.frame = CGRectMake(0, CGRectGetMaxY(_titleLabel.frame) + 10.0, width, messageSize.height); + [_button sizeToFit]; + CGSize buttonSize = _button.frame.size; + buttonSize.width += 20.0; + CGFloat buttonYOrigin = (CGRectGetHeight(_messageLabel.frame) > 0 ? CGRectGetMaxY(_messageLabel.frame) : CGRectGetMaxY(_titleLabel.frame)) + 20.0 ; + _button.frame = CGRectMake((width - buttonSize.width) / 2, buttonYOrigin, MIN(buttonSize.width, width), buttonSize.height); + CGRect bottomViewRect; - if (_messageLabel.text.length > 0) { + if (_button != nil) { + bottomViewRect = _button.frame; + } else if (_messageLabel.text.length > 0) { bottomViewRect = _messageLabel.frame; } else if (_titleLabel.text.length > 0) { bottomViewRect = _titleLabel.frame; @@ -72,7 +90,7 @@ - (void)layoutSubviews { #pragma mark Instance Methods -- (void)setupWithTitle:(NSString *)titleText message:(NSString *)messageText accessoryView:(UIView *)accessoryView { +- (void)setupWithTitle:(NSString *)titleText message:(NSString *)messageText accessoryView:(UIView *)accessoryView buttonTitle:(NSString *)buttonTitle { [self addSubview:accessoryView]; @@ -88,12 +106,39 @@ - (void)setupWithTitle:(NSString *)titleText message:(NSString *)messageText acc // Setup message text _messageLabel = [[UILabel alloc] init]; _messageLabel.font = [WPStyleGuide regularTextFont]; - _messageLabel.textColor = [WPStyleGuide whisperGrey]; + _messageLabel.textColor = [WPStyleGuide allTAllShadeGrey]; [self setMessageText:messageText]; _messageLabel.numberOfLines = 0; _messageLabel.textAlignment = NSTextAlignmentCenter; [self addSubview:_messageLabel]; + // Setup button + if (buttonTitle.length > 0) { + _button = [UIButton buttonWithType:UIButtonTypeCustom]; + [_button setTitle:buttonTitle forState:UIControlStateNormal]; + [_button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside]; + [_button setTitleColor:[WPStyleGuide allTAllShadeGrey] forState:UIControlStateNormal]; + [_button.titleLabel setFont:[WPStyleGuide regularTextFont]]; + + // Generate button background image + CGRect fillRect = CGRectMake(0, 0, 11.0, 36.0); + UIEdgeInsets capInsets = UIEdgeInsetsMake(4, 4, 4, 4); + UIImage *mainImage; + + UIGraphicsBeginImageContextWithOptions(fillRect.size, NO, [[UIScreen mainScreen] scale]); + CGContextRef context = UIGraphicsGetCurrentContext(); + CGContextSetStrokeColorWithColor(context, [WPStyleGuide allTAllShadeGrey].CGColor); + CGContextAddPath(context, [UIBezierPath bezierPathWithRoundedRect:CGRectInset(fillRect, 1, 1) cornerRadius:2.0].CGPath); + CGContextStrokePath(context); + mainImage = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + + [_button setBackgroundImage:[mainImage resizableImageWithCapInsets:capInsets] forState:UIControlStateNormal]; + + [self addSubview:_button]; + } + + // Register for orientation changes [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationDidChange:) name:UIDeviceOrientationDidChangeNotification object:nil]; @@ -103,7 +148,7 @@ - (void)setupWithTitle:(NSString *)titleText message:(NSString *)messageText acc - (void)setTitleText:(NSString *)title { if (title.length > 0) { - _titleLabel.attributedText = [[NSAttributedString alloc] initWithString:title attributes:[WPNUXUtility titleAttributesWithColor:[WPStyleGuide whisperGrey]]]; + _titleLabel.attributedText = [[NSAttributedString alloc] initWithString:title attributes:[WPNUXUtility titleAttributesWithColor:[WPStyleGuide allTAllShadeGrey]]]; } [self setNeedsLayout]; } @@ -144,4 +189,11 @@ - (void)orientationDidChange:(NSNotification *)notification { [self setNeedsLayout]; } +- (void)buttonAction:(id)sender +{ + if ([delegate respondsToSelector:@selector(noResultsViewButtonWasTapped:)]) { + [delegate noResultsViewButtonWasTapped:self]; + } +} + @end From 5ce2e53b5029b48c068d6aca3dd8b85b8cc67e79 Mon Sep 17 00:00:00 2001 From: Tom Date: Thu, 5 Dec 2013 10:21:08 -0800 Subject: [PATCH 3/8] Added ability to add button to WPTableViewController no results view --- WordPress/Classes/WPTableViewController.h | 4 +++- WordPress/Classes/WPTableViewController.m | 12 +++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/WordPress/Classes/WPTableViewController.h b/WordPress/Classes/WPTableViewController.h index 07901ba67b8b..9b643d85658d 100644 --- a/WordPress/Classes/WPTableViewController.h +++ b/WordPress/Classes/WPTableViewController.h @@ -9,10 +9,11 @@ #import "Blog.h" #import "SettingsViewControllerDelegate.h" +#import "WPNoResultsView.h" extern CGFloat const WPTableViewTopMargin; -@interface WPTableViewController : UITableViewController +@interface WPTableViewController : UITableViewController @property (nonatomic, strong) Blog *blog; @property (nonatomic, readonly) BOOL isScrolling; @@ -21,6 +22,7 @@ extern CGFloat const WPTableViewTopMargin; - (void)promptForPassword; - (NSString *)noResultsTitleText; - (NSString *)noResultsMessageText; +- (NSString *)noResultsButtonText; - (UIView *)noResultsAccessoryView; - (void)configureNoResultsView; diff --git a/WordPress/Classes/WPTableViewController.m b/WordPress/Classes/WPTableViewController.m index 42afc683f181..be8b66d0ee7f 100644 --- a/WordPress/Classes/WPTableViewController.m +++ b/WordPress/Classes/WPTableViewController.m @@ -168,6 +168,8 @@ - (void)setEditing:(BOOL)editing animated:(BOOL)animated { [super setEditing:editing animated:animated]; } +#pragma mark - No Results View + - (NSString *)noResultsTitleText { NSString *ttl = NSLocalizedString(@"No %@ yet", @"A string format. The '%@' will be replaced by the relevant type of object, posts, pages or comments."); @@ -185,6 +187,11 @@ - (UIView *)noResultsAccessoryView return nil; } +- (NSString *)noResultsButtonText +{ + return nil; +} + #pragma mark - Property accessors - (void)setBlog:(Blog *)blog { @@ -575,7 +582,10 @@ - (void)configureNoResultsView { - (UIView *)createNoResultsView { - return [WPNoResultsView noResultsViewWithTitle:[self noResultsTitleText] message:[self noResultsMessageText] accessoryView:[self noResultsAccessoryView]]; + WPNoResultsView *view = [WPNoResultsView noResultsViewWithTitle:[self noResultsTitleText] message:[self noResultsMessageText] accessoryView:[self noResultsAccessoryView] buttonTitle:[self noResultsButtonText]]; + view.delegate = self; + + return view; } - (void)hideRefreshHeader { From 46bc1235630a156d5d7068ee5e9dadc01f0975fa Mon Sep 17 00:00:00 2001 From: Tom Date: Thu, 5 Dec 2013 10:21:39 -0800 Subject: [PATCH 4/8] Web view controller hides tab bar when pushed --- WordPress/Classes/WPWebViewController.m | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/WordPress/Classes/WPWebViewController.m b/WordPress/Classes/WPWebViewController.m index 78598d74bba3..1557f39ba9e3 100644 --- a/WordPress/Classes/WPWebViewController.m +++ b/WordPress/Classes/WPWebViewController.m @@ -33,6 +33,10 @@ - (void)dealloc { _statusTimer = nil; } +- (BOOL)hidesBottomBarWhenPushed { + return YES; +} + - (NSString *)statsPrefixForShareActions { if (_statsPrefixForShareActions == nil) { return @"Webview"; From a8db883d1a47de3769078670fee3ad165b111f4c Mon Sep 17 00:00:00 2001 From: Tom Date: Thu, 5 Dec 2013 14:52:54 -0800 Subject: [PATCH 5/8] Added message explaining Jetpack to notifications tab for self-hosted users --- .../Classes/NotificationsViewController.m | 47 +++++++++++++++++- .../Resources/Images/icon-jetpack-gray.png | Bin 0 -> 4368 bytes .../Resources/Images/icon-jetpack-gray@2x.png | Bin 0 -> 8632 bytes WordPress/Resources/WPWebViewController.xib | 10 ++-- WordPress/WordPress.xcodeproj/project.pbxproj | 8 +++ 5 files changed, 59 insertions(+), 6 deletions(-) create mode 100644 WordPress/Resources/Images/icon-jetpack-gray.png create mode 100644 WordPress/Resources/Images/icon-jetpack-gray@2x.png diff --git a/WordPress/Classes/NotificationsViewController.m b/WordPress/Classes/NotificationsViewController.m index ca66c2cab26c..eddf7bda5767 100644 --- a/WordPress/Classes/NotificationsViewController.m +++ b/WordPress/Classes/NotificationsViewController.m @@ -16,6 +16,7 @@ #import "WPTableViewControllerSubclass.h" #import "NotificationSettingsViewController.h" #import "WPAccount.h" +#import "WPWebViewController.h" NSString * const NotificationsTableViewNoteCellIdentifier = @"NotificationsTableViewCell"; NSString * const NotificationsLastSyncDateKey = @"NotificationsLastSyncDate"; @@ -45,7 +46,51 @@ - (id)init { - (NSString *)noResultsTitleText { - return NSLocalizedString(@"No notifications yet", @"Displayed when the user pulls up the notifications view and they have no items"); + if ([self showJetpackConnectMessage]) { + return NSLocalizedString(@"Connect to Jetpack", @"Displayed in the notifications view when a self-hosted user is not connected to Jetpack"); + } else { + return NSLocalizedString(@"No notifications yet", @"Displayed when the user pulls up the notifications view and they have no items"); + } +} +- (NSString *)noResultsMessageText +{ + if ([self showJetpackConnectMessage]) { + return NSLocalizedString(@"Jetpack supercharges your self‑hosted WordPress site.", @"Displayed in the notifications view when a self-hosted user is not connected to Jetpack"); + } else { + return nil; + } +} +- (NSString *)noResultsButtonText +{ + if ([self showJetpackConnectMessage]) { + return NSLocalizedString(@"Learn more", @""); + } else { + return nil; + } +} +- (UIView *)noResultsAccessoryView +{ + if ([self showJetpackConnectMessage]) { + return [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon-jetpack-gray"]]; + } else { + return nil; + } +} + +- (void)noResultsViewButtonWasTapped:(WPNoResultsView *)noResultsView +{ + // Show Jetpack information screen + WPWebViewController *webViewController = [[WPWebViewController alloc] init]; + [webViewController setUrl:[NSURL URLWithString:@"http://jetpack.me/about/"]]; + [self.navigationController pushViewController:webViewController animated:YES]; +} + +- (BOOL)showJetpackConnectMessage +{ + // self.user == nil. No user implies that the user is using the + // app with a self-hosted blog not connected to jetpack + return self.user == nil; + } - (void)dealloc { diff --git a/WordPress/Resources/Images/icon-jetpack-gray.png b/WordPress/Resources/Images/icon-jetpack-gray.png new file mode 100644 index 0000000000000000000000000000000000000000..fa580d38c1cbc27c480a19992576ab1d0fd3fb7d GIT binary patch literal 4368 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 JeFw3M_&?uo#?$}+ literal 0 HcmV?d00001 diff --git a/WordPress/Resources/WPWebViewController.xib b/WordPress/Resources/WPWebViewController.xib index fdb804602f54..86cf9f58a127 100644 --- a/WordPress/Resources/WPWebViewController.xib +++ b/WordPress/Resources/WPWebViewController.xib @@ -1,8 +1,8 @@ - + - - + + @@ -61,15 +61,15 @@ - + + - \ No newline at end of file diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 8a4af064bbc2..5c950fc3a8c4 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -951,6 +951,8 @@ E24085A1183FDDEC002EB0EF /* penandink@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E240859F183FDDEC002EB0EF /* penandink@2x.png */; }; E2586BD31832F31D004B5B67 /* icon-site-field@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E2586BD11832F31D004B5B67 /* icon-site-field@2x.png */; }; E2586BD41832F31D004B5B67 /* icon-site-field.png in Resources */ = {isa = PBXBuildFile; fileRef = E2586BD21832F31D004B5B67 /* icon-site-field.png */; }; + E2AA879D1850F91E00886693 /* icon-jetpack-gray.png in Resources */ = {isa = PBXBuildFile; fileRef = E2AA879B1850F91E00886693 /* icon-jetpack-gray.png */; }; + E2AA879E1850F91E00886693 /* icon-jetpack-gray@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E2AA879C1850F91E00886693 /* icon-jetpack-gray@2x.png */; }; EC4696FF0EA75D460040EE8E /* PagesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EC4696FE0EA75D460040EE8E /* PagesViewController.m */; }; FD21397F13128C5300099582 /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = FD21397E13128C5300099582 /* libiconv.dylib */; }; FD22C2B716CD2B20002BA030 /* navbar_settings.png in Resources */ = {isa = PBXBuildFile; fileRef = FD22C2B516CD2B20002BA030 /* navbar_settings.png */; }; @@ -2130,6 +2132,8 @@ E240859F183FDDEC002EB0EF /* penandink@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "penandink@2x.png"; sourceTree = ""; }; E2586BD11832F31D004B5B67 /* icon-site-field@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-site-field@2x.png"; sourceTree = ""; }; E2586BD21832F31D004B5B67 /* icon-site-field.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-site-field.png"; sourceTree = ""; }; + E2AA879B1850F91E00886693 /* icon-jetpack-gray.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "icon-jetpack-gray.png"; path = "Resources/Images/icon-jetpack-gray.png"; sourceTree = ""; }; + E2AA879C1850F91E00886693 /* icon-jetpack-gray@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "icon-jetpack-gray@2x.png"; path = "Resources/Images/icon-jetpack-gray@2x.png"; sourceTree = ""; }; EBC24772E5CD4036B5AFD803 /* Pods.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.xcconfig; path = ../Pods/Pods.xcconfig; sourceTree = SOURCE_ROOT; }; EC4696FD0EA75D460040EE8E /* PagesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PagesViewController.h; sourceTree = ""; }; EC4696FE0EA75D460040EE8E /* PagesViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PagesViewController.m; sourceTree = ""; }; @@ -3146,6 +3150,8 @@ 5D7BEA991774A10D00423E7F /* icon-check@2x.png */, E233414F182DB97000A4CC40 /* icon-jetpack.png */, E2334150182DB97000A4CC40 /* icon-jetpack@2x.png */, + E2AA879B1850F91E00886693 /* icon-jetpack-gray.png */, + E2AA879C1850F91E00886693 /* icon-jetpack-gray@2x.png */, E232E5FD182E9E8600792CA0 /* icon-username-field@2x.png */, E232E5FF182EA15A00792CA0 /* icon-username-field.png */, E232E601182EA16200792CA0 /* icon-password-field.png */, @@ -4501,12 +4507,14 @@ 46F8714B1838BB4E00BC149B /* reader-postaction-tag.png in Resources */, 30E9683D15AE4EB10047DD84 /* sidebar-logo@2x.png in Resources */, 30E9684115AE60B20047DD84 /* navbar_add.png in Resources */, + E2AA879D1850F91E00886693 /* icon-jetpack-gray.png in Resources */, E232E603182EA16200792CA0 /* icon-password-field.png in Resources */, 30E9684215AE60B20047DD84 /* navbar_add@2x.png in Resources */, 30E9685515AE713A0047DD84 /* navbar_primary_button_bg_landscape_active.png in Resources */, 30E9685615AE713A0047DD84 /* navbar_primary_button_bg_landscape_active@2x.png in Resources */, 30E9685715AE713A0047DD84 /* navbar_primary_button_bg_landscape.png in Resources */, 30E9685815AE713A0047DD84 /* navbar_primary_button_bg_landscape@2x.png in Resources */, + E2AA879E1850F91E00886693 /* icon-jetpack-gray@2x.png in Resources */, 3001AB4215AEE56C00A9F8F3 /* toolbar_swipe_trash@2x.png in Resources */, 3001AB4615AEF05500A9F8F3 /* toolbar_swipe_approve.png in Resources */, 3001AB4715AEF05500A9F8F3 /* toolbar_swipe_approve@2x.png in Resources */, From 430274ceed2851bdc184f7d664aebe6477dc8b17 Mon Sep 17 00:00:00 2001 From: Tom Date: Thu, 5 Dec 2013 15:55:36 -0800 Subject: [PATCH 6/8] Created const for inline string --- WordPress/Classes/NotificationsViewController.m | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/WordPress/Classes/NotificationsViewController.m b/WordPress/Classes/NotificationsViewController.m index eddf7bda5767..0735165e1da7 100644 --- a/WordPress/Classes/NotificationsViewController.m +++ b/WordPress/Classes/NotificationsViewController.m @@ -20,6 +20,7 @@ NSString * const NotificationsTableViewNoteCellIdentifier = @"NotificationsTableViewCell"; NSString * const NotificationsLastSyncDateKey = @"NotificationsLastSyncDate"; +NSString * const NotificationsJetpackInformationURL = @"http://jetpack.me/about/"; @interface NotificationsViewController () { BOOL _retrievingNotifications; @@ -81,7 +82,7 @@ - (void)noResultsViewButtonWasTapped:(WPNoResultsView *)noResultsView { // Show Jetpack information screen WPWebViewController *webViewController = [[WPWebViewController alloc] init]; - [webViewController setUrl:[NSURL URLWithString:@"http://jetpack.me/about/"]]; + [webViewController setUrl:[NSURL URLWithString:NotificationsJetpackInformationURL]]; [self.navigationController pushViewController:webViewController animated:YES]; } From 2e1c7255f10a2725d160141cf64ec3bccdddebb7 Mon Sep 17 00:00:00 2001 From: Tom Date: Thu, 5 Dec 2013 15:57:46 -0800 Subject: [PATCH 7/8] Changed WPNoResultsView delegate method name --- WordPress/Classes/NotificationsViewController.m | 2 +- WordPress/Classes/WPNoResultsView.h | 2 +- WordPress/Classes/WPNoResultsView.m | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/WordPress/Classes/NotificationsViewController.m b/WordPress/Classes/NotificationsViewController.m index 0735165e1da7..95172782eed5 100644 --- a/WordPress/Classes/NotificationsViewController.m +++ b/WordPress/Classes/NotificationsViewController.m @@ -78,7 +78,7 @@ - (UIView *)noResultsAccessoryView } } -- (void)noResultsViewButtonWasTapped:(WPNoResultsView *)noResultsView +- (void)didTapNoResultsView:(WPNoResultsView *)noResultsView { // Show Jetpack information screen WPWebViewController *webViewController = [[WPWebViewController alloc] init]; diff --git a/WordPress/Classes/WPNoResultsView.h b/WordPress/Classes/WPNoResultsView.h index c000b0cce4c3..b30e5e8b5f80 100644 --- a/WordPress/Classes/WPNoResultsView.h +++ b/WordPress/Classes/WPNoResultsView.h @@ -12,7 +12,7 @@ @protocol WPNoResultsViewDelegate @optional -- (void)noResultsViewButtonWasTapped:(WPNoResultsView *)noResultsView; +- (void)didTapNoResultsView:(WPNoResultsView *)noResultsView; @end @interface WPNoResultsView : UIView { diff --git a/WordPress/Classes/WPNoResultsView.m b/WordPress/Classes/WPNoResultsView.m index 6e3400ac43ce..529f03dcff19 100644 --- a/WordPress/Classes/WPNoResultsView.m +++ b/WordPress/Classes/WPNoResultsView.m @@ -191,8 +191,8 @@ - (void)orientationDidChange:(NSNotification *)notification { - (void)buttonAction:(id)sender { - if ([delegate respondsToSelector:@selector(noResultsViewButtonWasTapped:)]) { - [delegate noResultsViewButtonWasTapped:self]; + if ([delegate respondsToSelector:@selector(didTapNoResultsView:)]) { + [delegate didTapNoResultsView:self]; } } From 2bd1b3b4070c02261ec2fcaf7da1498e6839d7fa Mon Sep 17 00:00:00 2001 From: Tom Date: Thu, 5 Dec 2013 16:02:03 -0800 Subject: [PATCH 8/8] Removed unnecessary delegate code from WPNoResultsView --- WordPress/Classes/WPNoResultsView.h | 6 ++---- WordPress/Classes/WPNoResultsView.m | 14 +++----------- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/WordPress/Classes/WPNoResultsView.h b/WordPress/Classes/WPNoResultsView.h index b30e5e8b5f80..26401a2ec57c 100644 --- a/WordPress/Classes/WPNoResultsView.h +++ b/WordPress/Classes/WPNoResultsView.h @@ -15,11 +15,9 @@ - (void)didTapNoResultsView:(WPNoResultsView *)noResultsView; @end -@interface WPNoResultsView : UIView { - id delegate; -} +@interface WPNoResultsView : UIView -@property (nonatomic, assign) id delegate; +@property (nonatomic, weak) id delegate; + (WPNoResultsView *)noResultsViewWithTitle:(NSString *)titleText message:(NSString *)messageText accessoryView:(UIView *)accessoryView buttonTitle:(NSString *)buttonTitle; diff --git a/WordPress/Classes/WPNoResultsView.m b/WordPress/Classes/WPNoResultsView.m index 529f03dcff19..4adf20d1eea1 100644 --- a/WordPress/Classes/WPNoResultsView.m +++ b/WordPress/Classes/WPNoResultsView.m @@ -37,15 +37,7 @@ - (void)didMoveToSuperview { - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; -} - -- (id)delegate -{ - return delegate; -} -- (void)setDelegate:(id)newDelegate -{ - delegate = newDelegate; + self.delegate = nil; } - (void)layoutSubviews { @@ -191,8 +183,8 @@ - (void)orientationDidChange:(NSNotification *)notification { - (void)buttonAction:(id)sender { - if ([delegate respondsToSelector:@selector(didTapNoResultsView:)]) { - [delegate didTapNoResultsView:self]; + if ([self.delegate respondsToSelector:@selector(didTapNoResultsView:)]) { + [self.delegate didTapNoResultsView:self]; } }