Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

first commit

  • Loading branch information...
commit 2db3ab1bc7a797d838a935ec07ac2cea6a6a3b41 1 parent a05bdd9
Mitsuhiro Amano amano authored
Showing with 1,864 additions and 0 deletions.
  1. +6 −0 .gitignore
  2. +2 −0  Classes/.gitignore
  3. +35 −0 Classes/ELCAlbumPickerController.h
  4. +214 −0 Classes/ELCAlbumPickerController.m
  5. +29 −0 Classes/ELCAsset.h
  6. +97 −0 Classes/ELCAsset.m
  7. +23 −0 Classes/ELCAssetCell.h
  8. +66 −0 Classes/ELCAssetCell.m
  9. +37 −0 Classes/ELCAssetTablePicker.h
  10. +200 −0 Classes/ELCAssetTablePicker.m
  11. +29 −0 Classes/ELCImagePickerController.h
  12. +69 −0 Classes/ELCImagePickerController.m
  13. +16 −0 Classes/JpKrayTiELCImagePickerModule.h
  14. +160 −0 Classes/JpKrayTiELCImagePickerModule.m
  15. +9 −0 Classes/JpKrayTiELCImagePickerModuleAssets.h
  16. +15 −0 Classes/JpKrayTiELCImagePickerModuleAssets.m
  17. +4 −0 JpKrayTiELCImagePicker_Prefix.pch
  18. +1 −0  LICENSE
  19. BIN  assets/Overlay.png
  20. BIN  assets/Overlay@2x.png
  21. +6 −0 assets/README
  22. +194 −0 build.py
  23. +39 −0 documentation/index.md
  24. +58 −0 example/app.js
  25. +1 −0  hooks/README
  26. +35 −0 hooks/add.py
  27. +19 −0 hooks/install.py
  28. +34 −0 hooks/remove.py
  29. +18 −0 hooks/uninstall.py
  30. +17 −0 manifest
  31. +28 −0 module.xcconfig
  32. +380 −0 tielcimagepicker.xcodeproj/project.pbxproj
  33. +4 −0 timodule.xml
  34. +19 −0 titanium.xcconfig
6 .gitignore
View
@@ -0,0 +1,6 @@
+tmp
+bin
+build
+*.zip
+tielcimagepicker.xcodeproj/project.xcworkspace
+tielcimagepicker.xcodeproj/xcuserdata
2  Classes/.gitignore
View
@@ -0,0 +1,2 @@
+JpKrayTiELCImagePicker.h
+JpKrayTiELCImagePicker.m
35 Classes/ELCAlbumPickerController.h
View
@@ -0,0 +1,35 @@
+//
+// AlbumPickerController.h
+//
+// Created by Matt Tuzzolo on 2/15/11.
+// Copyright 2011 ELC Technologies. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+typedef enum ELCAlbumPickerFilter {
+ kELCAlbumAllAssets = 0,
+ kELCAlbumAllPhotos,
+ kELCAlbumAllVideos
+} ELCAlbumPickerFilter;
+
+@interface ELCAlbumPickerController : UITableViewController {
+
+ NSMutableArray *assetGroups;
+ NSOperationQueue *queue;
+ id parent;
+ ELCAlbumPickerFilter assetFilter;
+ CGFloat cellHeight;
+ NSString *titleForSelection;
+}
+
+@property (nonatomic, assign) id parent;
+@property (nonatomic, retain) NSMutableArray *assetGroups;
+@property (nonatomic, assign) ELCAlbumPickerFilter assetFilter;
+@property (nonatomic, assign) CGFloat cellHeight;
+@property (nonatomic, retain) NSString *titleForSelection;
+
+-(void)selectedAssets:(NSArray*)_assets;
+
+@end
+
214 Classes/ELCAlbumPickerController.m
View
@@ -0,0 +1,214 @@
+//
+// AlbumPickerController.m
+//
+// Created by Matt Tuzzolo on 2/15/11.
+// Copyright 2011 ELC Technologies. All rights reserved.
+//
+
+#import <AssetsLibrary/AssetsLibrary.h>
+#import "ELCAlbumPickerController.h"
+#import "ELCImagePickerController.h"
+#import "ELCAssetTablePicker.h"
+#import "ELCAsset.h"
+
+@interface ELCAlbumPickerController ()
+- (ALAssetsFilter *) filter;
+@end
+
+
+@implementation ELCAlbumPickerController
+
+@synthesize parent, assetGroups;
+@synthesize assetFilter;
+@synthesize cellHeight;
+@synthesize titleForSelection;
+
+#pragma mark -
+#pragma mark View lifecycle
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
+{
+ // Return YES for supported orientations
+ return YES;
+}
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+
+ [self.navigationItem setTitle:NSLocalizedString(@"Loading...", @"Title bar text for loading albums")];
+
+ UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self.parent action:@selector(cancelImagePicker)];
+ [self.navigationItem setRightBarButtonItem:cancelButton];
+ [cancelButton release];
+
+ NSMutableArray *tempArray = [[NSMutableArray alloc] init];
+ self.assetGroups = tempArray;
+ [tempArray release];
+
+ // Load Albums into assetGroups
+ dispatch_async(dispatch_get_main_queue(), ^
+ {
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+
+ // Group enumerator Block
+ ALAssetsLibraryGroupsEnumerationResultsBlock assetGroupEnumerator = ^(ALAssetsGroup *group, BOOL *stop)
+ {
+ if (group == nil)
+ {
+ return;
+ }
+
+ [group setAssetsFilter:[self filter]];
+ if ([group numberOfAssets])
+ {
+ [self.assetGroups addObject:group];
+ }
+
+ // Reload albums
+ [self performSelectorOnMainThread:@selector(reloadTableView) withObject:nil waitUntilDone:YES];
+ };
+
+ // Group Enumerator Failure Block
+ ALAssetsLibraryAccessFailureBlock assetGroupEnumberatorFailure = ^(NSError *error) {
+
+ UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Album Error", @"Title for error when enumerating albums") message:[error description] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
+ [alert show];
+ [alert release];
+
+ //NSLog(@"A problem occured %@", [error description]);
+ };
+
+ // Enumerate Albums
+ ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
+ [library enumerateGroupsWithTypes:ALAssetsGroupAll
+ usingBlock:assetGroupEnumerator
+ failureBlock:assetGroupEnumberatorFailure];
+
+
+ [library release];
+ [pool release];
+ });
+}
+
+-(void)reloadTableView {
+
+ [self.tableView reloadData];
+ [self.navigationItem setTitle:NSLocalizedString(@"Select an Album", @"Text for title bar when selecting an album")];
+}
+
+-(void)selectedAssets:(NSArray*)_assets {
+
+ [(ELCImagePickerController*)parent selectedAssets:_assets];
+}
+
+#pragma mark -
+#pragma mark Table view data source
+
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
+ // Return the number of sections.
+ return 1;
+}
+
+
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+ // Return the number of rows in the section.
+ return [assetGroups count];
+}
+
+
+// Customize the appearance of table view cells.
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+
+ static NSString *CellIdentifier = @"Cell";
+
+ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
+ if (cell == nil) {
+ cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
+ }
+
+ // Get count
+ ALAssetsGroup *g = (ALAssetsGroup*)[assetGroups objectAtIndex:indexPath.row];
+ [g setAssetsFilter:[self filter]];
+ NSInteger gCount = [g numberOfAssets];
+
+ cell.textLabel.text = [NSString stringWithFormat:@"%@ (%d)",[g valueForProperty:ALAssetsGroupPropertyName], gCount];
+ [cell.imageView setImage:[UIImage imageWithCGImage:[(ALAssetsGroup*)[assetGroups objectAtIndex:indexPath.row] posterImage]]];
+ [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
+
+ return cell;
+}
+
+#pragma mark -
+#pragma mark Table view delegate
+
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+
+ ELCAssetTablePicker *picker = [[ELCAssetTablePicker alloc] init];
+ picker.parent = self;
+ picker.titleForSelection = self.titleForSelection;
+ if (self.cellHeight == 0)
+ {
+ self.cellHeight = kDefaultHeight;
+ }
+ picker.cellHeight = self.cellHeight;
+
+ // Move me
+ picker.assetGroup = [assetGroups objectAtIndex:indexPath.row];
+ [picker.assetGroup setAssetsFilter:[self filter]];
+
+ [self.navigationController pushViewController:picker animated:YES];
+ [picker release];
+}
+
+- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
+
+ return 57;
+}
+
+#pragma mark -
+#pragma mark Memory management
+
+- (void)didReceiveMemoryWarning {
+ // Releases the view if it doesn't have a superview.
+ [super didReceiveMemoryWarning];
+
+ // Relinquish ownership any cached data, images, etc that aren't in use.
+}
+
+- (void)viewDidUnload {
+ // Relinquish ownership of anything that can be recreated in viewDidLoad or on demand.
+ // For example: self.myOutlet = nil;
+}
+
+
+- (void)dealloc
+{
+ self.titleForSelection = nil;
+ [assetGroups release];
+ [super dealloc];
+}
+
+- (ALAssetsFilter *) filter
+{
+ switch (self.assetFilter)
+ {
+ case kELCAlbumAllAssets:
+ default:
+ {
+ return [ALAssetsFilter allAssets];
+ }
+
+ case kELCAlbumAllPhotos:
+ {
+ return [ALAssetsFilter allPhotos];
+ }
+
+ case kELCAlbumAllVideos:
+ {
+ return [ALAssetsFilter allVideos];
+ }
+ }
+}
+
+@end
+
29 Classes/ELCAsset.h
View
@@ -0,0 +1,29 @@
+//
+// Asset.h
+//
+// Created by Matt Tuzzolo on 2/15/11.
+// Copyright 2011 ELC Technologies. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import <AssetsLibrary/AssetsLibrary.h>
+
+#define kDefaultHeight 75
+
+@interface ELCAsset : UIView {
+ ALAsset *asset;
+ UIImageView *overlayView;
+ BOOL selected;
+ id parent;
+ CGFloat height;
+}
+
+@property (nonatomic, retain) ALAsset *asset;
+@property (nonatomic, assign) id parent;
+@property (nonatomic, assign) CGFloat height;
+
+-(id)initWithAsset:(ALAsset*)_asset;
+-(id)initWithAsset:(ALAsset*)_asset withHeight:(CGFloat) inHeight;
+-(BOOL)selected;
+
+@end
97 Classes/ELCAsset.m
View
@@ -0,0 +1,97 @@
+//
+// Asset.m
+//
+// Created by Matt Tuzzolo on 2/15/11.
+// Copyright 2011 ELC Technologies. All rights reserved.
+//
+
+#import "ELCAsset.h"
+#import "ELCAssetTablePicker.h"
+#import "TiUtils.h"
+
+@implementation ELCAsset
+
+@synthesize asset;
+@synthesize parent;
+@synthesize height;
+
+- (id)initWithFrame:(CGRect)frame {
+ if ((self = [super initWithFrame:frame])) {
+ // Initialization code
+ }
+ return self;
+}
+
+-(id)initWithAsset:(ALAsset*)_asset withHeight:(CGFloat) inHeight {
+
+ if ((self = [super initWithFrame:CGRectMake(0, 0, 0, 0)])) {
+
+ self.asset = _asset;
+
+ if (inHeight == 0)
+ {
+ self.height = kDefaultHeight;
+ }
+ else
+ {
+ self.height = inHeight;
+ }
+
+ CGRect viewFrames = CGRectMake(0, 0, self.height, self.height);
+
+ UIImageView *assetImageView = [[UIImageView alloc] initWithFrame:viewFrames];
+ [assetImageView setContentMode:UIViewContentModeScaleToFill];
+ [assetImageView setImage:[UIImage imageWithCGImage:[self.asset thumbnail]]];
+ [self addSubview:assetImageView];
+ [assetImageView release];
+
+ NSString *resourceurl = [[NSBundle mainBundle] resourcePath];
+ NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/modules/%@/%@",resourceurl,@"jp.kray.ti.ELCImagePicker",@"Overlay.png"]];
+ UIImage *overlayImage = [UIImage imageWithContentsOfFile:[url path]];
+ overlayView = [[UIImageView alloc] initWithFrame:viewFrames];
+ [overlayView setImage:overlayImage];
+ [overlayView setHidden:YES];
+ [self addSubview:overlayView];
+ }
+
+ return self;
+}
+
+-(id)initWithAsset:(ALAsset*)_asset {
+ return [self initWithAsset:_asset withHeight:0];
+}
+
+
+-(void)toggleSelection {
+
+ overlayView.hidden = !overlayView.hidden;
+
+// if([(ELCAssetTablePicker*)self.parent totalSelectedAssets] >= 10) {
+//
+// UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Maximum Reached" message:@"" delegate:self cancelButtonTitle:nil otherButtonTitles:@"Ok", nil];
+// [alert show];
+// [alert release];
+//
+// [(ELCAssetTablePicker*)self.parent doneAction:nil];
+// }
+}
+
+-(BOOL)selected {
+
+ return !overlayView.hidden;
+}
+
+-(void)setSelected:(BOOL)_selected {
+
+ [overlayView setHidden:!_selected];
+}
+
+- (void)dealloc
+{
+ self.asset = nil;
+ [overlayView release];
+ [super dealloc];
+}
+
+@end
+
23 Classes/ELCAssetCell.h
View
@@ -0,0 +1,23 @@
+//
+// AssetCell.h
+//
+// Created by Matt Tuzzolo on 2/15/11.
+// Copyright 2011 ELC Technologies. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+
+@interface ELCAssetCell : UITableViewCell
+{
+ NSArray *rowAssets;
+ CGFloat height;
+}
+
+-(id)initWithAssets:(NSArray*)_assets reuseIdentifier:(NSString*)_identifier;
+-(void)setAssets:(NSArray*)_assets;
+
+@property (nonatomic,retain) NSArray *rowAssets;
+@property (nonatomic, assign) CGFloat height;
+
+@end
66 Classes/ELCAssetCell.m
View
@@ -0,0 +1,66 @@
+//
+// AssetCell.m
+//
+// Created by Matt Tuzzolo on 2/15/11.
+// Copyright 2011 ELC Technologies. All rights reserved.
+//
+
+#import "ELCAssetCell.h"
+#import "ELCAsset.h"
+
+@implementation ELCAssetCell
+
+@synthesize rowAssets;
+@synthesize height;
+
+-(id)initWithAssets:(NSArray*)_assets reuseIdentifier:(NSString*)_identifier {
+
+ if((self = [super initWithStyle:UITableViewStylePlain reuseIdentifier:_identifier])) {
+
+ self.rowAssets = _assets;
+ }
+
+ return self;
+}
+
+-(void)setAssets:(NSArray*)_assets {
+
+ for(UIView *view in [self subviews])
+ {
+ [view removeFromSuperview];
+ }
+
+ self.rowAssets = _assets;
+}
+
+-(void)layoutSubviews {
+
+ if (self.height == 0)
+ {
+ self.height = kDefaultHeight;
+ }
+
+ CGFloat width = self.frame.size.width;
+ NSUInteger numPerRow = width / self.height;
+ CGFloat spacing = (width - (self.height * numPerRow)) / (float) (numPerRow + 1);
+
+ CGRect frame = CGRectMake(spacing, 2, self.height, self.height);
+
+ for(ELCAsset *elcAsset in self.rowAssets) {
+
+ [elcAsset setFrame:frame];
+ [elcAsset addGestureRecognizer:[[[UITapGestureRecognizer alloc] initWithTarget:elcAsset action:@selector(toggleSelection)] autorelease]];
+ [self addSubview:elcAsset];
+
+ frame.origin.x = frame.origin.x + frame.size.width + spacing;
+ }
+}
+
+-(void)dealloc
+{
+ [rowAssets release];
+
+ [super dealloc];
+}
+
+@end
37 Classes/ELCAssetTablePicker.h
View
@@ -0,0 +1,37 @@
+//
+// AssetTablePicker.h
+//
+// Created by Matt Tuzzolo on 2/15/11.
+// Copyright 2011 ELC Technologies. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import <AssetsLibrary/AssetsLibrary.h>
+
+@interface ELCAssetTablePicker : UITableViewController
+{
+ ALAssetsGroup *assetGroup;
+
+ NSMutableArray *elcAssets;
+ int selectedAssets;
+
+ id parent;
+
+ NSOperationQueue *queue;
+ CGFloat cellHeight;
+ NSString *titleForSelection;
+}
+
+@property (nonatomic, assign) id parent;
+@property (nonatomic, assign) ALAssetsGroup *assetGroup;
+@property (nonatomic, retain) NSMutableArray *elcAssets;
+@property (nonatomic, retain) IBOutlet UILabel *selectedAssetsLabel;
+@property (nonatomic, assign) CGFloat cellHeight;
+@property (nonatomic, retain) NSString *titleForSelection;
+
+-(int)totalSelectedAssets;
+-(void)preparePhotos;
+
+-(void)doneAction:(id)sender;
+
+@end
200 Classes/ELCAssetTablePicker.m
View
@@ -0,0 +1,200 @@
+//
+// AssetTablePicker.m
+//
+// Created by Matt Tuzzolo on 2/15/11.
+// Copyright 2011 ELC Technologies. All rights reserved.
+//
+
+#import "ELCAssetTablePicker.h"
+#import "ELCAssetCell.h"
+#import "ELCAsset.h"
+#import "ELCAlbumPickerController.h"
+
+@interface ELCAssetTablePicker ()
+- (NSUInteger) maxNumberOfCellsPerRow;
+@end
+
+@implementation ELCAssetTablePicker
+
+@synthesize parent;
+@synthesize selectedAssetsLabel;
+@synthesize assetGroup, elcAssets;
+@synthesize cellHeight;
+@synthesize titleForSelection;
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
+{
+ // Return YES for supported orientations
+ return YES;
+}
+
+-(void)viewDidLoad {
+
+ if (self.cellHeight == 0)
+ {
+ self.cellHeight = kDefaultHeight;
+ }
+
+ [self.tableView setSeparatorColor:[UIColor clearColor]];
+ [self.tableView setAllowsSelection:NO];
+
+ NSMutableArray *tempArray = [[NSMutableArray alloc] init];
+ self.elcAssets = tempArray;
+ [tempArray release];
+
+ UIBarButtonItem *doneButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneAction:)] autorelease];
+ [self.navigationItem setRightBarButtonItem:doneButtonItem];
+ [self.navigationItem setTitle:NSLocalizedString(@"Loading...", @"Title bar text for loading albums")];
+
+ [self performSelectorInBackground:@selector(preparePhotos) withObject:nil];
+
+ // Show partial while full list loads
+ [self.tableView performSelector:@selector(reloadData) withObject:nil afterDelay:.5];
+}
+
+-(void)preparePhotos {
+
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+
+
+ //NSLog(@"enumerating photos");
+ [self.assetGroup enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop)
+ {
+ if(result == nil)
+ {
+ return;
+ }
+
+ ELCAsset *elcAsset = [[[ELCAsset alloc] initWithAsset:result withHeight:self.cellHeight] autorelease];
+ [elcAsset setParent:self];
+ [self.elcAssets addObject:elcAsset];
+ }];
+ //NSLog(@"done enumerating photos");
+
+ [self.tableView reloadData];
+ if (self.titleForSelection == nil)
+ {
+ self.titleForSelection = NSLocalizedString(@"Pick Photos", @"Title for selecting photos");
+ }
+
+ [self.navigationItem setTitle:self.titleForSelection];
+
+ [pool release];
+
+}
+
+- (void) doneAction:(id)sender {
+
+ NSMutableArray *selectedAssetsImages = [[[NSMutableArray alloc] init] autorelease];
+
+ for(ELCAsset *elcAsset in self.elcAssets)
+ {
+ if([elcAsset selected]) {
+
+ [selectedAssetsImages addObject:[elcAsset asset]];
+ }
+ }
+
+ [(ELCAlbumPickerController*)self.parent selectedAssets:selectedAssetsImages];
+}
+
+#pragma mark UITableViewDataSource Delegate Methods
+
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
+ // Return the number of sections.
+ return 1;
+}
+
+
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+ return ceil([self.assetGroup numberOfAssets] / (float) [self maxNumberOfCellsPerRow]);
+}
+
+- (NSUInteger) maxNumberOfCellsPerRow
+{
+ return floor(self.tableView.frame.size.width / self.cellHeight);
+}
+
+-(NSArray*)assetsForIndexPath:(NSIndexPath*)_indexPath {
+
+ NSUInteger maxPerRow = [self maxNumberOfCellsPerRow];
+
+ int index = (_indexPath.row*maxPerRow);
+ int maxIndex = (_indexPath.row*maxPerRow+(maxPerRow - 1));
+ int minIndex = maxIndex - maxPerRow + 1;
+
+ // NSLog(@"Getting assets for %d to %d with array count %d", index, maxIndex, [assets count]);
+
+ for (int temp = maxIndex; temp >= minIndex; temp--)
+ {
+ if (temp < [self.elcAssets count])
+ {
+ NSMutableArray *array = [[NSMutableArray alloc] init];
+ for (int i = index; i <= temp; i++)
+ {
+ [array addObject:[self.elcAssets objectAtIndex:i]];
+ }
+
+ return [array autorelease];
+ }
+ }
+
+ return nil;
+}
+
+// Customize the appearance of table view cells.
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+
+ static NSString *CellIdentifier = @"Cell";
+
+ ELCAssetCell *cell = (ELCAssetCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
+
+ if (cell == nil)
+ {
+ cell = [[[ELCAssetCell alloc] initWithAssets:[self assetsForIndexPath:indexPath] reuseIdentifier:CellIdentifier] autorelease];
+ }
+ else
+ {
+ [cell setAssets:[self assetsForIndexPath:indexPath]];
+ }
+
+ cell.height = self.cellHeight;
+
+ return cell;
+}
+
+- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
+
+ return self.cellHeight + 4;
+}
+
+- (int)totalSelectedAssets {
+
+ int count = 0;
+
+ for(ELCAsset *asset in self.elcAssets)
+ {
+ if([asset selected])
+ {
+ count++;
+ }
+ }
+
+ return count;
+}
+
+- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
+{
+ [self.tableView reloadData];
+}
+
+
+- (void)dealloc
+{
+ self.titleForSelection = nil;
+ [elcAssets release];
+ [selectedAssetsLabel release];
+ [super dealloc];
+}
+
+@end
29 Classes/ELCImagePickerController.h
View
@@ -0,0 +1,29 @@
+//
+// ELCImagePickerController.h
+// ELCImagePickerDemo
+//
+// Created by Collin Ruffenach on 9/9/10.
+// Copyright 2010 ELC Technologies. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface ELCImagePickerController : UINavigationController {
+
+ id delegate;
+}
+
+@property (nonatomic, assign) id delegate;
+
+-(void)selectedAssets:(NSArray*)_assets;
+-(void)cancelImagePicker;
+
+@end
+
+@protocol ELCImagePickerControllerDelegate
+
+- (void)elcImagePickerController:(ELCImagePickerController *)picker didFinishPickingMediaWithInfo:(NSArray *)info;
+- (void)elcImagePickerControllerDidCancel:(ELCImagePickerController *)picker;
+
+@end
+
69 Classes/ELCImagePickerController.m
View
@@ -0,0 +1,69 @@
+//
+// ELCImagePickerController.m
+// ELCImagePickerDemo
+//
+// Created by Collin Ruffenach 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"
+
+@implementation ELCImagePickerController
+
+@synthesize delegate;
+
+-(void)cancelImagePicker {
+
+ if([delegate respondsToSelector:@selector(elcImagePickerControllerDidCancel:)]) {
+ [delegate performSelector:@selector(elcImagePickerControllerDidCancel:) withObject:self];
+ }
+}
+
+-(void)selectedAssets:(NSArray*)_assets {
+
+ NSMutableArray *returnArray = [[[NSMutableArray alloc] init] autorelease];
+
+ for(ALAsset *asset in _assets) {
+
+ NSMutableDictionary *workingDictionary = [[NSMutableDictionary alloc] init];
+ [workingDictionary setObject:[asset valueForProperty:ALAssetPropertyType] forKey:@"UIImagePickerControllerMediaType"];
+ [workingDictionary setObject:[UIImage imageWithCGImage:[[asset defaultRepresentation] fullScreenImage] scale:1.0 orientation:[[asset valueForProperty:@"ALAssetPropertyOrientation"] intValue]] forKey:@"UIImagePickerControllerOriginalImage"];
+ [workingDictionary setObject:[[asset valueForProperty:ALAssetPropertyURLs] valueForKey:[[[asset valueForProperty:ALAssetPropertyURLs] allKeys] objectAtIndex:0]] forKey:@"UIImagePickerControllerReferenceURL"];
+
+ [returnArray addObject:workingDictionary];
+
+ [workingDictionary release];
+ }
+
+ [self popToRootViewControllerAnimated:NO];
+ [[self parentViewController] dismissModalViewControllerAnimated:YES];
+
+ if([delegate respondsToSelector:@selector(elcImagePickerController:didFinishPickingMediaWithInfo:)]) {
+ [delegate performSelector:@selector(elcImagePickerController:didFinishPickingMediaWithInfo:) withObject:self withObject:[NSArray arrayWithArray:returnArray]];
+ }
+}
+
+#pragma mark -
+#pragma mark Memory management
+
+- (void)didReceiveMemoryWarning {
+ //NSLog(@"ELC Image Picker received memory warning!!!");
+
+ [super didReceiveMemoryWarning];
+}
+
+- (void)viewDidUnload {
+ [super viewDidUnload];
+}
+
+
+- (void)dealloc {
+ //NSLog(@"deallocing ELCImagePickerController");
+ [super dealloc];
+}
+
+@end
16 Classes/JpKrayTiELCImagePickerModule.h
View
@@ -0,0 +1,16 @@
+/**
+ * Your Copyright Here
+ *
+ * Appcelerator Titanium is Copyright (c) 2009-2010 by Appcelerator, Inc.
+ * and licensed under the Apache Public License (version 2)
+ */
+#import "TiModule.h"
+#import "KrollCallback.h"
+
+@interface JpKrayTiELCImagePickerModule : TiModule {
+ KrollCallback *pickerSuccessCallback;
+ KrollCallback *pickerErrorCallback;
+ KrollCallback *pickerCancelCallback;
+}
+
+@end
160 Classes/JpKrayTiELCImagePickerModule.m
View
@@ -0,0 +1,160 @@
+/**
+ * Your Copyright Here
+ *
+ * Appcelerator Titanium is Copyright (c) 2009-2010 by Appcelerator, Inc.
+ * and licensed under the Apache Public License (version 2)
+ */
+#import "JpKrayTiELCImagePickerModule.h"
+#import "TiBase.h"
+#import "TiHost.h"
+#import "TiUtils.h"
+#import "TiApp.h"
+#import "ELCAlbumPickerController.h"
+#import "ELCImagePickerController.h"
+
+@implementation JpKrayTiELCImagePickerModule
+
+#pragma mark Internal
+
+// this is generated for your module, please do not change it
+-(id)moduleGUID
+{
+ return @"57aae9d7-78a0-451f-83b6-d74d39160235";
+}
+
+// this is generated for your module, please do not change it
+-(NSString*)moduleId
+{
+ return @"jp.kray.ti.ELCImagePicker";
+}
+
+#pragma mark Lifecycle
+
+-(void)startup
+{
+ // this method is called when the module is first loaded
+ // you *must* call the superclass
+ [super startup];
+
+ NSLog(@"[INFO] %@ loaded",self);
+}
+
+-(void)shutdown:(id)sender
+{
+ // this method is called when the module is being unloaded
+ // typically this is during shutdown. make sure you don't do too
+ // much processing here or the app will be quit forceably
+
+ // you *must* call the superclass
+ [super shutdown:sender];
+}
+
+#pragma mark Cleanup
+
+-(void)dealloc
+{
+ // release any resources that have been retained by the module
+ [super dealloc];
+}
+
+#pragma mark Internal Memory Management
+
+-(void)didReceiveMemoryWarning:(NSNotification*)notification
+{
+ // optionally release any resources that can be dynamically
+ // reloaded once memory is available - such as caches
+ [super didReceiveMemoryWarning:notification];
+}
+
+#pragma mark Listener Notifications
+
+-(void)_listenerAdded:(NSString *)type count:(int)count
+{
+ if (count == 1 && [type isEqualToString:@"my_event"])
+ {
+ // the first (of potentially many) listener is being added
+ // for event named 'my_event'
+ }
+}
+
+-(void)_listenerRemoved:(NSString *)type count:(int)count
+{
+ if (count == 0 && [type isEqualToString:@"my_event"])
+ {
+ // the last listener called for event named 'my_event' has
+ // been removed, we can optionally clean up any resources
+ // since no body is listening at this point for that event
+ }
+}
+
+- (void)loadImagePicker:(id)args {
+ ENSURE_UI_THREAD(loadImagePicker,args);
+ ENSURE_SINGLE_ARG_OR_NIL(args,NSDictionary);
+
+ NSLog(@"Load ImagePicker\n");
+
+ if (args != nil) {
+ // callbacks
+ if ([args objectForKey:@"success"] != nil) {
+ pickerSuccessCallback = [args objectForKey:@"success"];
+ ENSURE_TYPE_OR_NIL(pickerSuccessCallback,KrollCallback);
+ [pickerSuccessCallback retain];
+ }
+
+ if ([args objectForKey:@"cancel"] != nil) {
+ pickerCancelCallback = [args objectForKey:@"cancel"];
+ ENSURE_TYPE_OR_NIL(pickerCancelCallback,KrollCallback);
+ [pickerCancelCallback retain];
+ }
+ }
+
+ ELCAlbumPickerController *albumController = [[ELCAlbumPickerController alloc] init];
+ ELCImagePickerController *elcPicker = [[ELCImagePickerController alloc] initWithRootViewController:albumController];
+ [albumController setParent:elcPicker];
+ albumController.assetFilter = kELCAlbumAllAssets;
+ albumController.cellHeight = 75;
+ albumController.titleForSelection = NSLocalizedString(@"Pick Something", @"Title for picking items");
+ [elcPicker setDelegate:self];
+
+ TiApp *tiApp = [TiApp app];
+ [tiApp showModalController:elcPicker animated:YES];
+
+ [elcPicker release];
+ [albumController release];
+}
+
+#pragma mark ELCImagePickerControllerDelegate Methods
+
+- (void)elcImagePickerController:(ELCImagePickerController *)picker didFinishPickingMediaWithInfo:(NSArray *)info {
+ NSLog(@"success didFinish:\n");
+
+ if (pickerSuccessCallback != nil) {
+ id listener = [[pickerSuccessCallback retain] autorelease];
+
+ NSMutableArray *images = [NSMutableArray array];
+ for (NSDictionary *dict in info) {
+ UIImage *image = [dict objectForKey:UIImagePickerControllerOriginalImage];
+ [images addObject:image];
+ }
+
+ NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
+ [dictionary setObject:images forKey:@"images"];
+ [self _fireEventToListener:@"success" withObject:dictionary listener:listener thisObject:nil];
+ }
+
+ [picker dismissModalViewControllerAnimated:YES];
+}
+
+- (void)elcImagePickerControllerDidCancel:(ELCImagePickerController *)picker {
+ NSLog(@"cancel didCancel:\n");
+
+ if (pickerSuccessCallback != nil) {
+ id listener = [[pickerSuccessCallback retain] autorelease];
+ NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
+ [self _fireEventToListener:@"success" withObject:dictionary listener:listener thisObject:nil];
+ }
+
+ [picker dismissModalViewControllerAnimated:YES];
+}
+
+@end
9 Classes/JpKrayTiELCImagePickerModuleAssets.h
View
@@ -0,0 +1,9 @@
+/**
+ * This is a generated file. Do not edit or your changes will be lost
+ */
+
+@interface JpKrayTiELCImagePickerModuleAssets : NSObject
+{
+}
+- (NSData*) moduleAsset;
+@end
15 Classes/JpKrayTiELCImagePickerModuleAssets.m
View
@@ -0,0 +1,15 @@
+/**
+ * This is a generated file. Do not edit or your changes will be lost
+ */
+#import "JpKrayTiELCImagePickerModuleAssets.h"
+
+extern NSData * dataWithHexString (NSString * hexString);
+
+@implementation JpKrayTiELCImagePickerModuleAssets
+
+- (NSData*) moduleAsset
+{
+ return nil;
+}
+
+@end
4 JpKrayTiELCImagePicker_Prefix.pch
View
@@ -0,0 +1,4 @@
+
+#ifdef __OBJC__
+ #import <Foundation/Foundation.h>
+#endif
1  LICENSE
View
@@ -0,0 +1 @@
+TODO: place your license here and we'll include it in the module distribution
BIN  assets/Overlay.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  assets/Overlay@2x.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 assets/README
View
@@ -0,0 +1,6 @@
+Place your assets like PNG files in this directory and they will be packaged with your module.
+
+If you create a file named jp.kray.ti.ELCImagePicker.js in this directory, it will be
+compiled and used as your module. This allows you to run pure Javascript
+modules that are pre-compiled.
+
194 build.py
View
@@ -0,0 +1,194 @@
+#!/usr/bin/env python
+#
+# Appcelerator Titanium Module Packager
+#
+#
+import os, sys, glob, string
+import zipfile
+
+cwd = os.path.abspath(os.path.dirname(sys._getframe(0).f_code.co_filename))
+os.chdir(cwd)
+required_module_keys = ['name','version','moduleid','description','copyright','license','copyright','platform','minsdk']
+module_defaults = {
+ 'description':'My module',
+ 'author': 'Your Name',
+ 'license' : 'Specify your license',
+ 'copyright' : 'Copyright (c) 2010 by Your Company',
+}
+module_license_default = "TODO: place your license here and we'll include it in the module distribution"
+
+def replace_vars(config,token):
+ idx = token.find('$(')
+ while idx != -1:
+ idx2 = token.find(')',idx+2)
+ if idx2 == -1: break
+ key = token[idx+2:idx2]
+ if not config.has_key(key): break
+ token = token.replace('$(%s)' % key, config[key])
+ idx = token.find('$(')
+ return token
+
+
+def read_ti_xcconfig():
+ contents = open(os.path.join(cwd,'titanium.xcconfig')).read()
+ config = {}
+ for line in contents.splitlines(False):
+ line = line.strip()
+ if line[0:2]=='//': continue
+ idx = line.find('=')
+ if idx > 0:
+ key = line[0:idx].strip()
+ value = line[idx+1:].strip()
+ config[key] = replace_vars(config,value)
+ return config
+
+def generate_doc(config):
+ docdir = os.path.join(cwd,'documentation')
+ if not os.path.exists(docdir):
+ print "Couldn't find documentation file at: %s" % docdir
+ return None
+ sdk = config['TITANIUM_SDK']
+ support_dir = os.path.join(sdk,'module','support')
+ sys.path.append(support_dir)
+ import markdown2
+ documentation = []
+ for file in os.listdir(docdir):
+ md = open(os.path.join(docdir,file)).read()
+ html = markdown2.markdown(md)
+ documentation.append({file:html});
+ return documentation
+
+def compile_js(manifest,config):
+ js_file = os.path.join(cwd,'assets','jp.kray.ti.ELCImagePicker.js')
+ if not os.path.exists(js_file): return
+
+ sdk = config['TITANIUM_SDK']
+ iphone_dir = os.path.join(sdk,'iphone')
+ sys.path.insert(0,iphone_dir)
+ from compiler import Compiler
+
+ path = os.path.basename(js_file)
+ metadata = Compiler.make_function_from_file(path,js_file)
+ method = metadata['method']
+ eq = path.replace('.','_')
+ method = ' return %s;' % method
+
+ f = os.path.join(cwd,'Classes','JpKrayTiELCImagePickerModuleAssets.m')
+ c = open(f).read()
+ idx = c.find('return ')
+ before = c[0:idx]
+ after = """
+}
+
+@end
+ """
+ newc = before + method + after
+
+ if newc!=c:
+ x = open(f,'w')
+ x.write(newc)
+ x.close()
+
+def die(msg):
+ print msg
+ sys.exit(1)
+
+def warn(msg):
+ print "[WARN] %s" % msg
+
+def validate_license():
+ c = open(os.path.join(cwd,'LICENSE')).read()
+ if c.find(module_license_default)!=1:
+ warn('please update the LICENSE file with your license text before distributing')
+
+def validate_manifest():
+ path = os.path.join(cwd,'manifest')
+ f = open(path)
+ if not os.path.exists(path): die("missing %s" % path)
+ manifest = {}
+ for line in f.readlines():
+ line = line.strip()
+ if line[0:1]=='#': continue
+ if line.find(':') < 0: continue
+ key,value = line.split(':')
+ manifest[key.strip()]=value.strip()
+ for key in required_module_keys:
+ if not manifest.has_key(key): die("missing required manifest key '%s'" % key)
+ if module_defaults.has_key(key):
+ defvalue = module_defaults[key]
+ curvalue = manifest[key]
+ if curvalue==defvalue: warn("please update the manifest key: '%s' to a non-default value" % key)
+ return manifest,path
+
+ignoreFiles = ['.DS_Store','.gitignore','libTitanium.a','titanium.jar','README','jp.kray.ti.ELCImagePicker.js']
+ignoreDirs = ['.DS_Store','.svn','.git','CVSROOT']
+
+def zip_dir(zf,dir,basepath,ignore=[]):
+ for root, dirs, files in os.walk(dir):
+ for name in ignoreDirs:
+ if name in dirs:
+ dirs.remove(name) # don't visit ignored directories
+ for file in files:
+ if file in ignoreFiles: continue
+ e = os.path.splitext(file)
+ if len(e)==2 and e[1]=='.pyc':continue
+ from_ = os.path.join(root, file)
+ to_ = from_.replace(dir, basepath, 1)
+ zf.write(from_, to_)
+
+def glob_libfiles():
+ files = []
+ for libfile in glob.glob('build/**/*.a'):
+ if libfile.find('Release-')!=-1:
+ files.append(libfile)
+ return files
+
+def build_module(manifest,config):
+ rc = os.system("xcodebuild -sdk iphoneos -configuration Release")
+ if rc != 0:
+ die("xcodebuild failed")
+ rc = os.system("xcodebuild -sdk iphonesimulator -configuration Release")
+ if rc != 0:
+ die("xcodebuild failed")
+ # build the merged library using lipo
+ moduleid = manifest['moduleid']
+ libpaths = ''
+ for libfile in glob_libfiles():
+ libpaths+='%s ' % libfile
+
+ os.system("lipo %s -create -output build/lib%s.a" %(libpaths,moduleid))
+
+def package_module(manifest,mf,config):
+ name = manifest['name'].lower()
+ moduleid = manifest['moduleid'].lower()
+ version = manifest['version']
+ modulezip = '%s-iphone-%s.zip' % (moduleid,version)
+ if os.path.exists(modulezip): os.remove(modulezip)
+ zf = zipfile.ZipFile(modulezip, 'w', zipfile.ZIP_DEFLATED)
+ modulepath = 'modules/iphone/%s/%s' % (moduleid,version)
+ zf.write(mf,'%s/manifest' % modulepath)
+ libname = 'lib%s.a' % moduleid
+ zf.write('build/%s' % libname, '%s/%s' % (modulepath,libname))
+ docs = generate_doc(config)
+ if docs!=None:
+ for doc in docs:
+ for file, html in doc.iteritems():
+ filename = string.replace(file,'.md','.html')
+ zf.writestr('%s/documentation/%s'%(modulepath,filename),html)
+ for dn in ('assets','example'):
+ if os.path.exists(dn):
+ zip_dir(zf,dn,'%s/%s' % (modulepath,dn),['README'])
+ zf.write('LICENSE','%s/LICENSE' % modulepath)
+ zf.write('module.xcconfig','%s/module.xcconfig' % modulepath)
+ zf.close()
+
+
+if __name__ == '__main__':
+ manifest,mf = validate_manifest()
+ validate_license()
+ config = read_ti_xcconfig()
+ compile_js(manifest,config)
+ build_module(manifest,config)
+ package_module(manifest,mf,config)
+ sys.exit(0)
+
39 documentation/index.md
View
@@ -0,0 +1,39 @@
+# tielcimagepicker Module
+
+## Description
+
+TODO: Enter your module description here
+
+## Accessing the tielcimagepicker Module
+
+To access this module from JavaScript, you would do the following:
+
+ var tielcimagepicker = require("jp.kray.ti.ELCImagePicker");
+
+The tielcimagepicker variable is a reference to the Module object.
+
+## Reference
+
+TODO: If your module has an API, you should document
+the reference here.
+
+### ___PROJECTNAMEASIDENTIFIER__.function
+
+TODO: This is an example of a module function.
+
+### ___PROJECTNAMEASIDENTIFIER__.property
+
+TODO: This is an example of a module property.
+
+## Usage
+
+TODO: Enter your usage example here
+
+## Author
+
+TODO: Enter your author name, email and other contact
+details you want to share here.
+
+## License
+
+TODO: Enter your license/legal information here.
58 example/app.js
View
@@ -0,0 +1,58 @@
+// This is a test harness for your module
+// You should do something interesting in this harness
+// to test out the module and to provide instructions
+// to users on how to use it by example.
+
+
+// open a single window
+var window = Ti.UI.createWindow({
+ backgroundColor:'white'
+});
+
+var view1 = Ti.UI.createView();
+
+var button1 = Ti.UI.createButton({
+ title: 'ImagePicker',
+ height: 32,
+ width: 120,
+ top: 30
+});
+
+view1.add(button1);
+window.add(view1);
+window.open();
+
+// TODO: write your module tests here
+var tielcimagepicker = require('jp.kray.ti.ELCImagePicker');
+Ti.API.info("module is => " + tielcimagepicker);
+
+var imageViews = [];
+button1.addEventListener('click', function() {
+ for(var i=0; i<imageViews.length; i++) {
+ view1.remove(imageViews[i]);
+ }
+ imageViews.length = 0;
+
+ while((imview = imageViews.pop()) != null) {
+ view1.remove(imview);
+ }
+ tielcimagepicker.loadImagePicker({
+ success:function(data){
+ Ti.API.info('success callback!');
+ if (data && data.images) {
+ var images = data.images;
+ for(var i=0; i<images.length; i++) {
+ var imageView = Ti.UI.createImageView({
+ image: images[i],
+ top: 100 + 20 * i
+ });
+ imageViews.push(imageView);
+ view1.add(imageView);
+ }
+ }
+ },
+ cancel:function(){
+ Ti.API.info('cancel callback!');
+ }
+ });
+});
1  hooks/README
View
@@ -0,0 +1 @@
+These files are not yet supported as of 1.4.0 but will be in a near future release.
35 hooks/add.py
View
@@ -0,0 +1,35 @@
+#!/usr/bin/env python
+#
+# This is the module project add hook that will be
+# called when your module is added to a project
+#
+import os, sys
+
+def dequote(s):
+ if s[0:1] == '"':
+ return s[1:-1]
+ return s
+
+def main(args,argc):
+ # You will get the following command line arguments
+ # in the following order:
+ #
+ # project_dir = the full path to the project root directory
+ # project_type = the type of project (desktop, mobile, ipad)
+ # project_name = the name of the project
+ #
+ project_dir = dequote(os.path.expanduser(args[1]))
+ project_type = dequote(args[2])
+ project_name = dequote(args[3])
+
+ # TODO: write your add hook here (optional)
+
+
+ # exit
+ sys.exit(0)
+
+
+
+if __name__ == '__main__':
+ main(sys.argv,len(sys.argv))
+
19 hooks/install.py
View
@@ -0,0 +1,19 @@
+#!/usr/bin/env python
+#
+# This is the module install hook that will be
+# called when your module is first installed
+#
+import os, sys
+
+def main(args,argc):
+
+ # TODO: write your install hook here (optional)
+
+ # exit
+ sys.exit(0)
+
+
+
+if __name__ == '__main__':
+ main(sys.argv,len(sys.argv))
+
34 hooks/remove.py
View
@@ -0,0 +1,34 @@
+#!/usr/bin/env python
+#
+# This is the module project remove hook that will be
+# called when your module is remove from a project
+#
+import os, sys
+
+def dequote(s):
+ if s[0:1] == '"':
+ return s[1:-1]
+ return s
+
+def main(args,argc):
+ # You will get the following command line arguments
+ # in the following order:
+ #
+ # project_dir = the full path to the project root directory
+ # project_type = the type of project (desktop, mobile, ipad)
+ # project_name = the name of the project
+ #
+ project_dir = dequote(os.path.expanduser(args[1]))
+ project_type = dequote(args[2])
+ project_name = dequote(args[3])
+
+ # TODO: write your remove hook here (optional)
+
+ # exit
+ sys.exit(0)
+
+
+
+if __name__ == '__main__':
+ main(sys.argv,len(sys.argv))
+
18 hooks/uninstall.py
View
@@ -0,0 +1,18 @@
+#!/usr/bin/env python
+#
+# This is the module uninstall hook that will be
+# called when your module is uninstalled
+#
+import os, sys
+
+def main(args,argc):
+
+ # TODO: write your uninstall hook here (optional)
+
+ # exit
+ sys.exit(0)
+
+
+if __name__ == '__main__':
+ main(sys.argv,len(sys.argv))
+
17 manifest
View
@@ -0,0 +1,17 @@
+#
+# this is your module manifest and used by Titanium
+# during compilation, packaging, distribution, etc.
+#
+version: 0.1
+description: Titanium ELCImagePickerController
+author: Mitsuhiro Amano
+license: MIT
+copyright: Copyright (c) 2010 by KRAY Inc.
+
+
+# these should not be edited
+name: TiELCImagePicker
+moduleid: jp.kray.ti.ELCImagePicker
+guid: 57aae9d7-78a0-451f-83b6-d74d39160235
+platform: iphone
+minsdk: 1.6.2
28 module.xcconfig
View
@@ -0,0 +1,28 @@
+//
+// PLACE ANY BUILD DEFINITIONS IN THIS FILE AND THEY WILL BE
+// PICKED UP DURING THE APP BUILD FOR YOUR MODULE
+//
+// see the following webpage for instructions on the settings
+// for this file:
+// http://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/XcodeBuildSystem/400-Build_Configurations/build_configs.html
+//
+
+//
+// How to add a Framework (example)
+//
+// OTHER_LDFLAGS=$(inherited) -framework Foo
+//
+// Adding a framework for a specific version(s) of iPhone:
+//
+// OTHER_LDFLAGS[sdk=iphoneos4*]=$(inherited) -framework Foo
+// OTHER_LDFLAGS[sdk=iphonesimulator4*]=$(inherited) -framework Foo
+//
+//
+// How to add a compiler define:
+//
+// OTHER_CFLAGS=$(inherited) -DFOO=1
+//
+//
+// IMPORTANT NOTE: always use $(inherited) in your overrides
+//
+OTHER_LDFLAGS=$(inherited) -framework AssetsLibrary -all_load%
380 tielcimagepicker.xcodeproj/project.pbxproj
View
@@ -0,0 +1,380 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 45;
+ objects = {
+
+/* Begin PBXAggregateTarget section */
+ 24416B8111C4CA220047AFDD /* Build & Test */ = {
+ isa = PBXAggregateTarget;
+ buildConfigurationList = 24416B8A11C4CA520047AFDD /* Build configuration list for PBXAggregateTarget "Build & Test" */;
+ buildPhases = (
+ 24416B8011C4CA220047AFDD /* ShellScript */,
+ );
+ dependencies = (
+ 24416B8511C4CA280047AFDD /* PBXTargetDependency */,
+ );
+ name = "Build & Test";
+ productName = "Build & test";
+ };
+/* End PBXAggregateTarget section */
+
+/* Begin PBXBuildFile section */
+ 24DD6CF91134B3F500162E58 /* JpKrayTiELCImagePickerModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 24DD6CF71134B3F500162E58 /* JpKrayTiELCImagePickerModule.h */; };
+ 24DD6CFA1134B3F500162E58 /* JpKrayTiELCImagePickerModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 24DD6CF81134B3F500162E58 /* JpKrayTiELCImagePickerModule.m */; };
+ 24DE9E1111C5FE74003F90F6 /* JpKrayTiELCImagePickerModuleAssets.h in Headers */ = {isa = PBXBuildFile; fileRef = 24DE9E0F11C5FE74003F90F6 /* JpKrayTiELCImagePickerModuleAssets.h */; };
+ 24DE9E1211C5FE74003F90F6 /* JpKrayTiELCImagePickerModuleAssets.m in Sources */ = {isa = PBXBuildFile; fileRef = 24DE9E1011C5FE74003F90F6 /* JpKrayTiELCImagePickerModuleAssets.m */; };
+ AA747D9F0F9514B9006C5449 /* JpKrayTiELCImagePicker_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = AA747D9E0F9514B9006C5449 /* JpKrayTiELCImagePicker_Prefix.pch */; };
+ AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AACBBE490F95108600F1A2B1 /* Foundation.framework */; };
+ E7B857F713A4A4FC00959E7E /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7B857F613A4A4FC00959E7E /* AssetsLibrary.framework */; };
+ E7B8580313A4A54700959E7E /* ELCAlbumPickerController.h in Headers */ = {isa = PBXBuildFile; fileRef = E7B857F913A4A54700959E7E /* ELCAlbumPickerController.h */; };
+ E7B8580413A4A54700959E7E /* ELCAlbumPickerController.m in Sources */ = {isa = PBXBuildFile; fileRef = E7B857FA13A4A54700959E7E /* ELCAlbumPickerController.m */; };
+ E7B8580513A4A54700959E7E /* ELCAsset.h in Headers */ = {isa = PBXBuildFile; fileRef = E7B857FB13A4A54700959E7E /* ELCAsset.h */; };
+ E7B8580613A4A54700959E7E /* ELCAsset.m in Sources */ = {isa = PBXBuildFile; fileRef = E7B857FC13A4A54700959E7E /* ELCAsset.m */; };
+ E7B8580713A4A54700959E7E /* ELCAssetCell.h in Headers */ = {isa = PBXBuildFile; fileRef = E7B857FD13A4A54700959E7E /* ELCAssetCell.h */; };
+ E7B8580813A4A54700959E7E /* ELCAssetCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E7B857FE13A4A54700959E7E /* ELCAssetCell.m */; };
+ E7B8580913A4A54700959E7E /* ELCAssetTablePicker.h in Headers */ = {isa = PBXBuildFile; fileRef = E7B857FF13A4A54700959E7E /* ELCAssetTablePicker.h */; };
+ E7B8580A13A4A54700959E7E /* ELCAssetTablePicker.m in Sources */ = {isa = PBXBuildFile; fileRef = E7B8580013A4A54700959E7E /* ELCAssetTablePicker.m */; };
+ E7B8580B13A4A54700959E7E /* ELCImagePickerController.h in Headers */ = {isa = PBXBuildFile; fileRef = E7B8580113A4A54700959E7E /* ELCImagePickerController.h */; };
+ E7B8580C13A4A54700959E7E /* ELCImagePickerController.m in Sources */ = {isa = PBXBuildFile; fileRef = E7B8580213A4A54700959E7E /* ELCImagePickerController.m */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ 24416B8411C4CA280047AFDD /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = D2AAC07D0554694100DB518D;
+ remoteInfo = tielcimagepicker;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 24DD6CF71134B3F500162E58 /* JpKrayTiELCImagePickerModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JpKrayTiELCImagePickerModule.h; path = Classes/JpKrayTiELCImagePickerModule.h; sourceTree = "<group>"; };
+ 24DD6CF81134B3F500162E58 /* JpKrayTiELCImagePickerModule.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = JpKrayTiELCImagePickerModule.m; path = Classes/JpKrayTiELCImagePickerModule.m; sourceTree = "<group>"; };
+ 24DD6D1B1134B66800162E58 /* titanium.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = titanium.xcconfig; sourceTree = "<group>"; };
+ 24DE9E0F11C5FE74003F90F6 /* JpKrayTiELCImagePickerModuleAssets.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JpKrayTiELCImagePickerModuleAssets.h; path = Classes/JpKrayTiELCImagePickerModuleAssets.h; sourceTree = "<group>"; };
+ 24DE9E1011C5FE74003F90F6 /* JpKrayTiELCImagePickerModuleAssets.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = JpKrayTiELCImagePickerModuleAssets.m; path = Classes/JpKrayTiELCImagePickerModuleAssets.m; sourceTree = "<group>"; };
+ AA747D9E0F9514B9006C5449 /* JpKrayTiELCImagePicker_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JpKrayTiELCImagePicker_Prefix.pch; sourceTree = SOURCE_ROOT; };
+ AACBBE490F95108600F1A2B1 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ D2AAC07E0554694100DB518D /* libJpKrayTiELCImagePicker.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libJpKrayTiELCImagePicker.a; sourceTree = BUILT_PRODUCTS_DIR; };
+ E7B857F613A4A4FC00959E7E /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; };
+ E7B857F913A4A54700959E7E /* ELCAlbumPickerController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ELCAlbumPickerController.h; path = ../TiELCImagePicker.old/Classes/ELCAlbumPickerController.h; sourceTree = "<group>"; };
+ E7B857FA13A4A54700959E7E /* ELCAlbumPickerController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ELCAlbumPickerController.m; path = ../TiELCImagePicker.old/Classes/ELCAlbumPickerController.m; sourceTree = "<group>"; };
+ E7B857FB13A4A54700959E7E /* ELCAsset.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ELCAsset.h; path = ../TiELCImagePicker.old/Classes/ELCAsset.h; sourceTree = "<group>"; };
+ E7B857FC13A4A54700959E7E /* ELCAsset.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ELCAsset.m; path = ../TiELCImagePicker.old/Classes/ELCAsset.m; sourceTree = "<group>"; };
+ E7B857FD13A4A54700959E7E /* ELCAssetCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ELCAssetCell.h; path = ../TiELCImagePicker.old/Classes/ELCAssetCell.h; sourceTree = "<group>"; };
+ E7B857FE13A4A54700959E7E /* ELCAssetCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ELCAssetCell.m; path = ../TiELCImagePicker.old/Classes/ELCAssetCell.m; sourceTree = "<group>"; };
+ E7B857FF13A4A54700959E7E /* ELCAssetTablePicker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ELCAssetTablePicker.h; path = ../TiELCImagePicker.old/Classes/ELCAssetTablePicker.h; sourceTree = "<group>"; };
+ E7B8580013A4A54700959E7E /* ELCAssetTablePicker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ELCAssetTablePicker.m; path = ../TiELCImagePicker.old/Classes/ELCAssetTablePicker.m; sourceTree = "<group>"; };
+ E7B8580113A4A54700959E7E /* ELCImagePickerController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ELCImagePickerController.h; path = ../TiELCImagePicker.old/Classes/ELCImagePickerController.h; sourceTree = "<group>"; };
+ E7B8580213A4A54700959E7E /* ELCImagePickerController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ELCImagePickerController.m; path = ../TiELCImagePicker.old/Classes/ELCImagePickerController.m; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D2AAC07C0554694100DB518D /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ E7B857F713A4A4FC00959E7E /* AssetsLibrary.framework in Frameworks */,
+ AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 034768DFFF38A50411DB9C8B /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ D2AAC07E0554694100DB518D /* libJpKrayTiELCImagePicker.a */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 0867D691FE84028FC02AAC07 /* tielcimagepicker */ = {
+ isa = PBXGroup;
+ children = (
+ 08FB77AEFE84172EC02AAC07 /* Classes */,
+ 32C88DFF0371C24200C91783 /* Other Sources */,
+ 0867D69AFE84028FC02AAC07 /* Frameworks */,
+ 034768DFFF38A50411DB9C8B /* Products */,
+ );
+ name = tielcimagepicker;
+ sourceTree = "<group>";
+ };
+ 0867D69AFE84028FC02AAC07 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ E7B857F613A4A4FC00959E7E /* AssetsLibrary.framework */,
+ AACBBE490F95108600F1A2B1 /* Foundation.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "<group>";
+ };
+ 08FB77AEFE84172EC02AAC07 /* Classes */ = {
+ isa = PBXGroup;
+ children = (
+ E7B857F813A4A52E00959E7E /* ELCImagePicker */,
+ 24DE9E0F11C5FE74003F90F6 /* JpKrayTiELCImagePickerModuleAssets.h */,
+ 24DE9E1011C5FE74003F90F6 /* JpKrayTiELCImagePickerModuleAssets.m */,
+ 24DD6CF71134B3F500162E58 /* JpKrayTiELCImagePickerModule.h */,
+ 24DD6CF81134B3F500162E58 /* JpKrayTiELCImagePickerModule.m */,
+ );
+ name = Classes;
+ sourceTree = "<group>";
+ };
+ 32C88DFF0371C24200C91783 /* Other Sources */ = {
+ isa = PBXGroup;
+ children = (
+ AA747D9E0F9514B9006C5449 /* JpKrayTiELCImagePicker_Prefix.pch */,
+ 24DD6D1B1134B66800162E58 /* titanium.xcconfig */,
+ );
+ name = "Other Sources";
+ sourceTree = "<group>";
+ };
+ E7B857F813A4A52E00959E7E /* ELCImagePicker */ = {
+ isa = PBXGroup;
+ children = (
+ E7B857F913A4A54700959E7E /* ELCAlbumPickerController.h */,
+ E7B857FA13A4A54700959E7E /* ELCAlbumPickerController.m */,
+ E7B857FB13A4A54700959E7E /* ELCAsset.h */,
+ E7B857FC13A4A54700959E7E /* ELCAsset.m */,
+ E7B857FD13A4A54700959E7E /* ELCAssetCell.h */,
+ E7B857FE13A4A54700959E7E /* ELCAssetCell.m */,
+ E7B857FF13A4A54700959E7E /* ELCAssetTablePicker.h */,
+ E7B8580013A4A54700959E7E /* ELCAssetTablePicker.m */,
+ E7B8580113A4A54700959E7E /* ELCImagePickerController.h */,
+ E7B8580213A4A54700959E7E /* ELCImagePickerController.m */,
+ );
+ name = ELCImagePicker;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ D2AAC07A0554694100DB518D /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ AA747D9F0F9514B9006C5449 /* JpKrayTiELCImagePicker_Prefix.pch in Headers */,
+ 24DD6CF91134B3F500162E58 /* JpKrayTiELCImagePickerModule.h in Headers */,
+ 24DE9E1111C5FE74003F90F6 /* JpKrayTiELCImagePickerModuleAssets.h in Headers */,
+ E7B8580313A4A54700959E7E /* ELCAlbumPickerController.h in Headers */,
+ E7B8580513A4A54700959E7E /* ELCAsset.h in Headers */,
+ E7B8580713A4A54700959E7E /* ELCAssetCell.h in Headers */,
+ E7B8580913A4A54700959E7E /* ELCAssetTablePicker.h in Headers */,
+ E7B8580B13A4A54700959E7E /* ELCImagePickerController.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ D2AAC07D0554694100DB518D /* tielcimagepicker */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "tielcimagepicker" */;
+ buildPhases = (
+ D2AAC07A0554694100DB518D /* Headers */,
+ D2AAC07B0554694100DB518D /* Sources */,
+ D2AAC07C0554694100DB518D /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = tielcimagepicker;
+ productName = tielcimagepicker;
+ productReference = D2AAC07E0554694100DB518D /* libJpKrayTiELCImagePicker.a */;
+ productType = "com.apple.product-type.library.static";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 0867D690FE84028FC02AAC07 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "tielcimagepicker" */;
+ compatibilityVersion = "Xcode 3.1";
+ developmentRegion = English;
+ hasScannedForEncodings = 1;
+ knownRegions = (
+ English,
+ Japanese,
+ French,
+ German,
+ );
+ mainGroup = 0867D691FE84028FC02AAC07 /* tielcimagepicker */;
+ productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ D2AAC07D0554694100DB518D /* tielcimagepicker */,
+ 24416B8111C4CA220047AFDD /* Build & Test */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXShellScriptBuildPhase section */
+ 24416B8011C4CA220047AFDD /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "# shell script goes here\n\npython \"${TITANIUM_SDK}/titanium.py\" run --dir=\"${PROJECT_DIR}\"\nexit $?\n";
+ };
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ D2AAC07B0554694100DB518D /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 24DD6CFA1134B3F500162E58 /* JpKrayTiELCImagePickerModule.m in Sources */,
+ 24DE9E1211C5FE74003F90F6 /* JpKrayTiELCImagePickerModuleAssets.m in Sources */,
+ E7B8580413A4A54700959E7E /* ELCAlbumPickerController.m in Sources */,
+ E7B8580613A4A54700959E7E /* ELCAsset.m in Sources */,
+ E7B8580813A4A54700959E7E /* ELCAssetCell.m in Sources */,
+ E7B8580A13A4A54700959E7E /* ELCAssetTablePicker.m in Sources */,
+ E7B8580C13A4A54700959E7E /* ELCImagePickerController.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ 24416B8511C4CA280047AFDD /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = D2AAC07D0554694100DB518D /* tielcimagepicker */;
+ targetProxy = 24416B8411C4CA280047AFDD /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+ 1DEB921F08733DC00010E9CD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 24DD6D1B1134B66800162E58 /* titanium.xcconfig */;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ COPY_PHASE_STRIP = NO;
+ DSTROOT = /tmp/JpKrayTiELCImagePicker.dst;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = JpKrayTiELCImagePicker_Prefix.pch;
+ INSTALL_PATH = /usr/local/lib;
+ PRODUCT_NAME = JpKrayTiELCImagePicker;
+ };
+ name = Debug;
+ };
+ 1DEB922008733DC00010E9CD /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 24DD6D1B1134B66800162E58 /* titanium.xcconfig */;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ DSTROOT = /tmp/JpKrayTiELCImagePicker.dst;
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = JpKrayTiELCImagePicker_Prefix.pch;
+ INSTALL_PATH = /usr/local/lib;
+ PRODUCT_NAME = JpKrayTiELCImagePicker;
+ };
+ name = Release;
+ };
+ 1DEB922308733DC00010E9CD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 24DD6D1B1134B66800162E58 /* titanium.xcconfig */;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ OTHER_LDFLAGS = "";
+ PREBINDING = NO;
+ SDKROOT = iphoneos;
+ };
+ name = Debug;
+ };
+ 1DEB922408733DC00010E9CD /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 24DD6D1B1134B66800162E58 /* titanium.xcconfig */;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ OTHER_LDFLAGS = "";
+ PREBINDING = NO;
+ SDKROOT = iphoneos;
+ };
+ name = Release;
+ };
+ 24416B8211C4CA220047AFDD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 24DD6D1B1134B66800162E58 /* titanium.xcconfig */;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ PRODUCT_NAME = "Build & test";
+ };
+ name = Debug;
+ };
+ 24416B8311C4CA220047AFDD /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 24DD6D1B1134B66800162E58 /* titanium.xcconfig */;
+ buildSettings = {
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ PRODUCT_NAME = "Build & test";
+ ZERO_LINK = NO;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "tielcimagepicker" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1DEB921F08733DC00010E9CD /* Debug */,
+ 1DEB922008733DC00010E9CD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "tielcimagepicker" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1DEB922308733DC00010E9CD /* Debug */,
+ 1DEB922408733DC00010E9CD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 24416B8A11C4CA520047AFDD /* Build configuration list for PBXAggregateTarget "Build & Test" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 24416B8211C4CA220047AFDD /* Debug */,
+ 24416B8311C4CA220047AFDD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
+}
4 timodule.xml
View
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ti:module xmlns:ti="http://ti.appcelerator.org" xmlns:android="http://schemas.android.com/apk/res/android">
+ <!-- Similar to tiapp.xml, but contains module/platform specific configuration in <iphone> and <android>/<android:manifest> sections -->
+</ti:module>
19 titanium.xcconfig
View
@@ -0,0 +1,19 @@
+//
+//
+// CHANGE THESE VALUES TO REFLECT THE VERSION (AND LOCATION IF DIFFERENT)
+// OF YOUR TITANIUM SDK YOU'RE BUILDING FOR
+//
+//
+TITANIUM_SDK_VERSION = 1.6.2
+
+
+//
+// THESE SHOULD BE OK GENERALLY AS-IS
+//
+TITANIUM_SDK = /Library/Application Support/Titanium/mobilesdk/osx/$(TITANIUM_SDK_VERSION)
+TITANIUM_BASE_SDK = "$(TITANIUM_SDK)/iphone/include"
+TITANIUM_BASE_SDK2 = "$(TITANIUM_SDK)/iphone/include/TiCore"
+HEADER_SEARCH_PATHS= $(TITANIUM_BASE_SDK) $(TITANIUM_BASE_SDK2)
+
+
+
Please sign in to comment.
Something went wrong with that request. Please try again.