// // ELCImagePickerController.m // ELCImagePickerDemo // // Created by ELC on 9/9/10. // Copyright 2010 ELC Technologies. All rights reserved. // #import "ELCImagePickerController.h" #import "ELCAsset.h" #import "ELCAssetCell.h" #import "ELCAssetTablePicker.h" #import "ELCAlbumPickerController.h" #import <CoreLocation/CoreLocation.h> @implementation ELCImagePickerController //Using auto synthesizers - (id)initImagePicker { ELCAlbumPickerController *albumPicker = [[ELCAlbumPickerController alloc] initWithStyle:UITableViewStylePlain]; self = [super initWithRootViewController:albumPicker]; if (self) { self.maximumImagesCount = 4; [albumPicker setParent:self]; } return self; } - (id)initWithRootViewController:(UIViewController *)rootViewController { self = [super initWithRootViewController:rootViewController]; if (self) { self.maximumImagesCount = 4; } return self; } - (void)cancelImagePicker { if ([_imagePickerDelegate respondsToSelector:@selector(elcImagePickerControllerDidCancel:)]) { [_imagePickerDelegate performSelector:@selector(elcImagePickerControllerDidCancel:) withObject:self]; } } - (BOOL)shouldSelectAsset:(ELCAsset *)asset previousCount:(NSUInteger)previousCount { BOOL shouldSelect = previousCount < self.maximumImagesCount; if (!shouldSelect) { NSString *title = [NSString stringWithFormat:NSLocalizedString(@"Maximum %d photos.", nil), self.maximumImagesCount]; NSString *message = [NSString stringWithFormat:NSLocalizedString(@"You can only select %d photos at a time.", nil), self.maximumImagesCount]; [[[UIAlertView alloc] initWithTitle:title message:message delegate:nil cancelButtonTitle:nil otherButtonTitles:NSLocalizedString(@"Okay", nil), nil] show]; } return shouldSelect; } - (void)selectedAssets:(NSArray *)assets { NSMutableArray *returnArray = [[NSMutableArray alloc] init]; for(ALAsset *asset in assets) { id obj = [asset valueForProperty:ALAssetPropertyType]; if (!obj) { continue; } NSMutableDictionary *workingDictionary = [[NSMutableDictionary alloc] init]; [workingDictionary setObject:asset forKey:@"ALAsset"]; [workingDictionary setObject:[[asset valueForProperty:ALAssetPropertyURLs] valueForKey:[[[asset valueForProperty:ALAssetPropertyURLs] allKeys] objectAtIndex:0]] forKey:UIImagePickerControllerReferenceURL]; [returnArray addObject:workingDictionary]; } if (_imagePickerDelegate != nil && [_imagePickerDelegate respondsToSelector:@selector(elcImagePickerController:didFinishPickingMediaWithInfo:)]) { [_imagePickerDelegate performSelector:@selector(elcImagePickerController:didFinishPickingMediaWithInfo:) withObject:self withObject:returnArray]; } else { [self popToRootViewControllerAnimated:NO]; } } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { return YES; } else { return toInterfaceOrientation != UIInterfaceOrientationPortraitUpsideDown; } } @end