Professional Documents
Culture Documents
// AlbumPickerController.m
//
// Created by ELC on 2/15/11.
// Copyright 2011 ELC Technologies. All rights reserved.
//
#import "ELCAlbumPickerController.h"
#import "ELCImagePickerController.h"
#import "ELCAssetTablePicker.h"
#import <MobileCoreServices/UTCoreTypes.h>
@interface ELCAlbumPickerController ()
@end
@implementation ELCAlbumPickerController
#pragma mark -
#pragma mark View lifecycle
- (void)viewDidLoad
{
[super viewDidLoad];
[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
// Reload albums
[self performSelectorOnMainThread:@selector(reloadTableView)
withObject:nil waitUntilDone:YES];
};
if ([ALAssetsLibrary authorizationStatus] ==
ALAuthorizationStatusDenied) {
NSString *errorMessage = NSLocalizedString(@"This app does not
have access to your photos or videos. You can enable access in Privacy Settings.",
nil);
[[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Access
Denied", nil) message:errorMessage delegate:nil
cancelButtonTitle:NSLocalizedString(@"Ok", nil) otherButtonTitles:nil] show];
} else {
NSString *errorMessage = [NSString stringWithFormat:@"Album
Error: %@ - %@", [error localizedDescription], [error
localizedRecoverySuggestion]];
[[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",
nil) message:errorMessage delegate:nil cancelButtonTitle:NSLocalizedString(@"Ok",
nil) otherButtonTitles:nil] show];
}
[self.navigationItem setTitle:nil];
NSLog(@"A problem occured %@", [error description]);
};
// Enumerate Albums
[self.library enumerateGroupsWithTypes:ALAssetsGroupAll
usingBlock:assetGroupEnumerator
failureBlock:assetGroupEnumberatorFailure];
}
});
- (void)viewWillAppear:(BOOL)animated {
- (void)reloadTableView
{
[self.tableView reloadData];
[self.navigationItem setTitle:NSLocalizedString(@"Select an Album", nil)];
}
- (void)selectedAssets:(NSArray*)assets
{
[_parent selectedAssets:assets];
}
- (ALAssetsFilter *)assetFilter
{
if([self.mediaTypes containsObject:(NSString *)kUTTypeImage] &&
[self.mediaTypes containsObject:(NSString *)kUTTypeMovie])
{
return [ALAssetsFilter allAssets];
}
else if([self.mediaTypes containsObject:(NSString *)kUTTypeMovie])
{
return [ALAssetsFilter allVideos];
}
else
{
return [ALAssetsFilter allPhotos];
}
}
#pragma mark -
#pragma mark Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}
// Get count
ALAssetsGroup *g = (ALAssetsGroup*)[self.assetGroups
objectAtIndex:indexPath.row];
[g setAssetsFilter:[self assetFilter]];
NSInteger gCount = [g numberOfAssets];
return cell;
}
#pragma mark -
#pragma mark Table view delegate
@end