2 // ActivitiesViewController.m
5 // Created by Quang Anh Do on 07/06/2010.
6 // Copyright 2010 Quang Anh Do. All rights reserved.
9 #import "ActivitiesViewController.h"
10 #import "CommonFunctions.h"
11 #import "OSConsumer.h"
12 #import "OAServiceTicket.h"
13 #import "NSDictionary_JSONExtensions.h"
14 #import "ATutorAppDelegate.h"
16 @interface LauncherViewController (Private)
18 - (void)activitiesCallback:(OAServiceTicket *)ticket didFinishWithResponse:(id)response;
22 @implementation ActivitiesViewController
25 if (self = [super init]) {
26 self.title = TTLocalizedString(@"Activities", @"");
27 self.autoresizesForKeyboard = YES;
28 self.variableHeightRows = YES;
30 OSConsumer *consumer = [(ATutorAppDelegate *)[[UIApplication sharedApplication] delegate] consumer];
31 [consumer getDataForUrl:@"/activities/@me/@contacts"
34 didFinishSelector:@selector(activitiesCallback:didFinishWithResponse:)];
43 self.tableView.allowsSelection = NO;
46 - (void)activitiesCallback:(OAServiceTicket *)ticket didFinishWithResponse:(id)response {
47 if (ticket.didSucceed) {
49 NSDictionary *contactList = [NSKeyedUnarchiver unarchiveObjectWithFile:[applicationDocumentsDirectory() stringByAppendingPathComponent:@"contact_mapping.plist"]];
50 NSLog(@"Contact list: %@", contactList);
54 NSDictionary *data = [NSDictionary dictionaryWithJSONData:[response dataUsingEncoding:NSUTF8StringEncoding] error:&error];
56 int numberOfItems = [[data objectForKey:@"totalResults"] intValue] % [[data objectForKey:@"itemsPerPage"] intValue];
58 TTListDataSource *dataSource = [[[TTListDataSource alloc] init] autorelease];
59 for (int i = 0; i < numberOfItems; i++) {
60 NSDictionary *entry = [[data objectForKey:@"entry"] objectAtIndex:i];
62 NSString *contact = [NSString stringWithFormat:@"<a href='%@'>%@</a>",
63 linkToContact([[entry objectForKey:@"userId"] integerValue], [contactList objectForKey:[entry objectForKey:@"userId"]]), // link
64 [contactList objectForKey:[entry objectForKey:@"userId"]]]; // name
65 NSString *xhtml = [NSString stringWithFormat:@"%@ - %@ %@",
66 niceTimeString([entry objectForKey:@"postedTime"]), // time
68 rewriteURLStrings([entry objectForKey:@"title"]) // title
71 TTStyledText *text = [TTStyledText textFromXHTML:xhtml];
73 [dataSource.items addObject:[TTTableStyledTextItem itemWithText:text URL:nil]];
76 self.dataSource = dataSource;
78 alertMessage(@"Error", @"Unable to process your request");