From ba30d5c850b2712d0a5530ecc09b8616e55a40ba Mon Sep 17 00:00:00 2001 From: Paul Young Date: Sun, 14 Jul 2013 15:51:15 -0400 Subject: Associating message rendering operation with table view cell. * Added custom table view cell. * Cancelling operation on cell reuse. --- .../iOS UI Test/iOS UI Test.xcodeproj/project.pbxproj | 6 ++++++ example/ios/iOS UI Test/iOS UI Test/MCTTableViewCell.h | 16 ++++++++++++++++ example/ios/iOS UI Test/iOS UI Test/MCTTableViewCell.m | 13 +++++++++++++ .../ios/iOS UI Test/iOS UI Test/MasterViewController.m | 11 +++++++---- .../iOS UI Test/en.lproj/MainStoryboard.storyboard | 5 ++++- 5 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 example/ios/iOS UI Test/iOS UI Test/MCTTableViewCell.h create mode 100644 example/ios/iOS UI Test/iOS UI Test/MCTTableViewCell.m (limited to 'example') diff --git a/example/ios/iOS UI Test/iOS UI Test.xcodeproj/project.pbxproj b/example/ios/iOS UI Test/iOS UI Test.xcodeproj/project.pbxproj index e9cd3797..d8972256 100644 --- a/example/ios/iOS UI Test/iOS UI Test.xcodeproj/project.pbxproj +++ b/example/ios/iOS UI Test/iOS UI Test.xcodeproj/project.pbxproj @@ -35,6 +35,7 @@ C6D71951178BB8B4008ED15F /* GTMOAuth2ViewControllerTouch.m in Sources */ = {isa = PBXBuildFile; fileRef = C6D71947178BA812008ED15F /* GTMOAuth2ViewControllerTouch.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; C6D71952178BB8B4008ED15F /* GTMOAuth2ViewTouch.xib in Resources */ = {isa = PBXBuildFile; fileRef = C6D71948178BA812008ED15F /* GTMOAuth2ViewTouch.xib */; }; C6D71954178BB91E008ED15F /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6D71953178BB91E008ED15F /* SystemConfiguration.framework */; }; + DA9AD477179331A600743873 /* MCTTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9AD476179331A600743873 /* MCTTableViewCell.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -126,6 +127,8 @@ C6D71947178BA812008ED15F /* GTMOAuth2ViewControllerTouch.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GTMOAuth2ViewControllerTouch.m; sourceTree = ""; }; C6D71948178BA812008ED15F /* GTMOAuth2ViewTouch.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = GTMOAuth2ViewTouch.xib; sourceTree = ""; }; C6D71953178BB91E008ED15F /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; + DA9AD475179331A600743873 /* MCTTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCTTableViewCell.h; sourceTree = ""; }; + DA9AD476179331A600743873 /* MCTTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MCTTableViewCell.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -222,6 +225,8 @@ AB9EAE3517036FD700D750C7 /* SettingsViewController.xib */, AB9EAE0C170368F000D750C7 /* Supporting Files */, AB665BC917134336007F2151 /* common */, + DA9AD475179331A600743873 /* MCTTableViewCell.h */, + DA9AD476179331A600743873 /* MCTTableViewCell.m */, ); path = "iOS UI Test"; sourceTree = ""; @@ -408,6 +413,7 @@ C6D7194F178BB8B4008ED15F /* GTMOAuth2Authentication.m in Sources */, B12AAA3417322654003551C7 /* MCOMessageView.mm in Sources */, B12AAA3517322654003551C7 /* MCTMsgViewController.mm in Sources */, + DA9AD477179331A600743873 /* MCTTableViewCell.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/example/ios/iOS UI Test/iOS UI Test/MCTTableViewCell.h b/example/ios/iOS UI Test/iOS UI Test/MCTTableViewCell.h new file mode 100644 index 00000000..0d680415 --- /dev/null +++ b/example/ios/iOS UI Test/iOS UI Test/MCTTableViewCell.h @@ -0,0 +1,16 @@ +// +// MCTTableViewCell.h +// iOS UI Test +// +// Created by Paul Young on 14/07/2013. +// Copyright (c) 2013 AppJon. All rights reserved. +// + +#import +#import + +@interface MCTTableViewCell : UITableViewCell + +@property (nonatomic, strong) MCOIMAPMessageRenderingOperation * messageRenderingOperation; + +@end diff --git a/example/ios/iOS UI Test/iOS UI Test/MCTTableViewCell.m b/example/ios/iOS UI Test/iOS UI Test/MCTTableViewCell.m new file mode 100644 index 00000000..21d22e38 --- /dev/null +++ b/example/ios/iOS UI Test/iOS UI Test/MCTTableViewCell.m @@ -0,0 +1,13 @@ +// +// MCTTableViewCell.m +// iOS UI Test +// +// Created by Paul Young on 14/07/2013. +// Copyright (c) 2013 AppJon. All rights reserved. +// + +#import "MCTTableViewCell.h" + +@implementation MCTTableViewCell + +@end diff --git a/example/ios/iOS UI Test/iOS UI Test/MasterViewController.m b/example/ios/iOS UI Test/iOS UI Test/MasterViewController.m index 1b2528d1..c05fdd9a 100644 --- a/example/ios/iOS UI Test/iOS UI Test/MasterViewController.m +++ b/example/ios/iOS UI Test/iOS UI Test/MasterViewController.m @@ -11,6 +11,7 @@ #import "FXKeychain.h" #import "MCTMsgViewController.h" #import "GTMOAuth2ViewControllerTouch.h" +#import "MCTTableViewCell.h" #define CLIENT_ID @"the-client-id" #define CLIENT_SECRET @"the-client-secret" @@ -167,15 +168,17 @@ finishedRefreshWithFetcher:(GTMHTTPFetcher *)fetcher } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { - UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath]; + MCTTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath]; MCOIMAPMessage *message = self.messages[indexPath.row]; cell.textLabel.text = message.header.subject; - MCOIMAPMessageRenderingOperation * op = [self.imapSession plainTextBodyRenderingOperationWithMessage:message - folder:@"INBOX"]; + [cell.messageRenderingOperation cancel]; - [op start:^(NSString * htmlString, NSError * error) { + cell.messageRenderingOperation = [self.imapSession plainTextBodyRenderingOperationWithMessage:message + folder:@"INBOX"]; + + [cell.messageRenderingOperation start:^(NSString * htmlString, NSError * error) { cell.detailTextLabel.text = htmlString; }]; diff --git a/example/ios/iOS UI Test/iOS UI Test/en.lproj/MainStoryboard.storyboard b/example/ios/iOS UI Test/iOS UI Test/en.lproj/MainStoryboard.storyboard index 91422073..2e9d223f 100644 --- a/example/ios/iOS UI Test/iOS UI Test/en.lproj/MainStoryboard.storyboard +++ b/example/ios/iOS UI Test/iOS UI Test/en.lproj/MainStoryboard.storyboard @@ -30,7 +30,7 @@ - + @@ -75,6 +75,9 @@ + + + -- cgit v1.2.3