// // PhotoViewController.m // acidcow // // Created by Matthew Handler on 4/18/11. // Copyright 2011 Earl Industries. All rights reserved. // #import "PhotoViewController.h" #import "PhotoSource.h" #import #import "CJSONDeserializer.h" @interface MyPhotoViewController : TTPhotoViewController { } @end @implementation MyPhotoViewController -(void)viewDidLoad{ // New item to be added UIBarButtonItem *shareItem = [[UIBarButtonItem alloc] initWithTitle:@"Share" style:UIBarButtonItemStyleBordered target:self action:@selector(action:)]; UIBarButtonItem *customItem = [[UIBarButtonItem alloc] initWithTitle:@"Save" style:UIBarButtonItemStyleBordered target:self action:@selector(action:)]; // Flex space to keep the back / forward arrows centered UIBarButtonItem *flex = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; UIBarButtonItem *flex2 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; // Create array with items starting with the left side NSMutableArray *items = [NSMutableArray arrayWithObject:shareItem]; [items addObject:flex]; // Then add the current items (the back / forward arrows) [items addObjectsFromArray:[_toolbar items]]; [items addObject:flex2]; // Add in our new item to the far right [items addObject:customItem]; [_toolbar setItems:items]; [shareItem release]; [customItem release]; [flex release]; [flex2 release]; // UIBarButtonItem *infoDarkButtonType = [[UIButton buttonWithType:UIButtonTypeInfoLight] retain]; //// infoDarkButtonType = CGRectMake(0.0, 0.0, 25.0, 25.0); //// infoDarkButtonType.backgroundColor = [UIColor clearColor]; // [infoDarkButtonType addTarget:self action:@selector(infoButtonPressed:) forControlEvents:UIControlEventTouchUpInside]; // UIBarButtonItem *infoButton = [[UIBarButtonItem alloc] initWithCustomView:infoDarkButtonType]; // // [self.navigationItem.leftBarButtonItem setTitle:@"back"]; // self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"back" // style:UIBarButtonItemStyleBordered // target:nil // action:nil]; // self.navigationItem.rightBarButtonItem = [UIButton buttonWithType:UIButtonTypeInfoLight]; // [infoDarkButtonType release]; // [infoButton release]; } //- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { // [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; // self.navigationItem.backBarButtonItem.title = @"back"; //} - (void)updateChrome { //[self updateTitle]; // if (![self.previousViewController isKindOfClass: [TTThumbsViewController class]]) { // if (_photoSource.numberOfPhotos > 1) { // self.navigationItem.rightBarButtonItem = [[UIBarButtonItem // alloc] // initWithTitle:TTLocalizedString(@"See All", @"See all photo // thumbnails") // style:UIBarButtonItemStyleBordered target:self action:@selector // (showThumbnails)]; // } else { // self.navigationItem.rightBarButtonItem = [UIButton buttonWithType:UIButtonTypeInfoLight]; // } // } else { // self.navigationItem.rightBarButtonItem = [UIButton buttonWithType:UIButtonTypeInfoLight]; // } [super updateChrome]; self.navigationItem.backBarButtonItem.title = @"back"; //self.navigationItem.rightBarButtonItem = [UIButton buttonWithType:UIButtonTypeInfoLight]; // UIBarButtonItem* playButton = [_toolbar itemWithTag:1]; // playButton.enabled = _photoSource.numberOfPhotos > 1; // _previousButton.enabled = _centerPhotoIndex > 0; // _nextButton.enabled = _centerPhotoIndex < // _photoSource.numberOfPhotos-1; } -(void)action:(id)sender{ // Perform your action } @end @implementation TTThumbsViewController (test) - (TTPhotoViewController*)createPhotoViewController { //NSLog(@"test"); return (TTPhotoViewController *)[[[MyPhotoViewController alloc] init] autorelease]; } @end @implementation PhotoViewController @synthesize topic; - (void)viewDidLoad { [super viewDidLoad]; [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque]; _receivedData = [[NSMutableData data] retain]; } - (void)viewWillDisappear:(BOOL)animated { self.navigationController.navigationBar.barStyle = UIBarStyleDefault; self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:24/255.0 green:45/255.0 blue:64/255.0 alpha:1.0]; } -(void)setTopic:(Topic *)t { topic = t; self.navigationItem.title = topic.title; [self loadImages]; } - (void)convertArray { NSMutableArray *converted = [[[NSMutableArray alloc] init] retain]; NSError *theError = nil; id dictionary = [[CJSONDeserializer deserializer] deserialize:(NSData *)_receivedData error:&theError]; //NSLog(@"%@", dictionary); NSArray *array = [dictionary objectForKey:@"list"]; for (NSDictionary *obj in array) { [converted addObject:[[[Photo alloc] initWithURL:[obj objectForKey:@"original_url"] smallURL:[obj objectForKey:@"original_url"] size:CGSizeMake(0,0) caption:[obj objectForKey:@"caption"]] autorelease]]; } self.photoSource = [[PhotoSource alloc] initWithType:PhotoSourceNormal title:topic.title photos:converted photos2:nil]; [converted release]; } #pragma mark - #pragma mark URL Connection Stuff - (void)loadImages { // // NSLog(@"%@", [NSString stringWithFormat:@"http://piccast.memeschemes.com/json/pics_by_set/%@/", // topic.foreignId]); NSURLRequest *theRequest=[NSURLRequest requestWithURL: [NSURL URLWithString: [NSString stringWithFormat:@"http://piccast.memeschemes.com/json/pics_by_set/%@/", topic.foreignId]] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:3600.0]; if ([NSURLConnection connectionWithRequest:theRequest delegate:self]) { [_receivedData setLength:0]; } else { //[MBProgressHUD hideHUDForView:self.view animated:YES]; //[WerdMergeAppDelegate prompt:@"Error" withMessage:@"No internet connection" andButtonTitle:@"shucks" withDelegate:self]; } } - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { [_receivedData setLength:0]; } - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { [_receivedData appendData:data]; } - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { //[_receivedData release]; //[MBProgressHUD hideHUDForView:self.view animated:YES]; //[WerdMergeAppDelegate prompt:@"Error" withMessage:[error localizedDescription] andButtonTitle:@"Aww man..." withDelegate:self]; //[[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]); } - (void)connectionDidFinishLoading:(NSURLConnection *)connection { // NSString *html = [[[NSString alloc] initWithData:_receivedData encoding:NSUTF8StringEncoding] autorelease]; // // NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:@"http://acidcow\\.com/pics[^ \"]+\\.(jpg|png|jpeg|gif)" // options:NSRegularExpressionCaseInsensitive // error:nil]; // NSArray *results = [regex matchesInString:html options:0 range:NSMakeRange(0, [html length])]; // NSMutableArray *strings = [[NSMutableArray alloc] initWithCapacity:[results count]]; // for (NSTextCheckingResult *obj in results) { // [strings addObject:[html substringWithRange:[obj range]]]; // // //NSLog(@"found: %@", [html substringWithRange:[obj range]]); // } //PhotoViewController *photoView = [[[PhotoViewController alloc] init] autorelease]; //self.photoList = strings; [self convertArray]; //[self.navigationController pushViewController:photoView animated:YES]; // [self.view addSubview:(UIView *)photoView]; // if ([results count] > 0) { // NSString *title = [currentString substringWithRange:[[results objectAtIndex:0] range]]; // currentTopic.title = title; // } //[_tableData removeAllObjects]; //[_tableData addObjectsFromArray:[[json JSONValue] objectForKey:@"results"]]; //[json release]; // if ([_tableData count] > 0) { // [tableView reloadData]; // [tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:NO]; // self.tableView.allowsSelection = YES; // self.tableView.scrollEnabled = YES; // } // else { // [WerdMergeAppDelegate prompt:@"No Results" withMessage:@"Sorry, that word isn't in our dictionary" andButtonTitle:@"Alright" withDelegate:self]; // } // // [MBProgressHUD hideHUDForView:self.view animated:YES]; //[_receivedData release]; } /* // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance during animation. - (void)drawRect:(CGRect)rect { // Drawing code. } */ - (void)dealloc { //[photoList release]; [super dealloc]; } @end