You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by sh...@apache.org on 2012/06/07 01:49:51 UTC
ios commit: Fixed CB-506 - images taken via Camera.getPicture do not
get deleted
Updated Branches:
refs/heads/master 5f8f7ef4d -> d8afe9b4a
Fixed CB-506 - images taken via Camera.getPicture do not get deleted
Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/commit/d8afe9b4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/tree/d8afe9b4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/diff/d8afe9b4
Branch: refs/heads/master
Commit: d8afe9b4abf3c8a1049920e2b512b78e581b17cb
Parents: 5f8f7ef
Author: Shazron Abdullah <sh...@apache.org>
Authored: Wed Jun 6 16:49:42 2012 -0700
Committer: Shazron Abdullah <sh...@apache.org>
Committed: Wed Jun 6 16:49:42 2012 -0700
----------------------------------------------------------------------
CordovaLib/Classes/CDVCamera.h | 1 +
CordovaLib/Classes/CDVCamera.m | 41 ++++++++++++++++++++++++++++++++++-
2 files changed, 41 insertions(+), 1 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/d8afe9b4/CordovaLib/Classes/CDVCamera.h
----------------------------------------------------------------------
diff --git a/CordovaLib/Classes/CDVCamera.h b/CordovaLib/Classes/CDVCamera.h
index 6e62232..fa38764 100644
--- a/CordovaLib/Classes/CDVCamera.h
+++ b/CordovaLib/Classes/CDVCamera.h
@@ -83,6 +83,7 @@ typedef NSUInteger CDVMediaType;
*/
- (void) takePicture:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options;
- (void) postImage:(UIImage*)anImage withFilename:(NSString*)filename toUrl:(NSURL*)url;
+- (void) cleanup:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options;
- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info;
- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingImage:(UIImage*)image editingInfo:(NSDictionary*)editingInfo;
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/d8afe9b4/CordovaLib/Classes/CDVCamera.m
----------------------------------------------------------------------
diff --git a/CordovaLib/Classes/CDVCamera.m b/CordovaLib/Classes/CDVCamera.m
index 282d8c1..b9c0bad 100644
--- a/CordovaLib/Classes/CDVCamera.m
+++ b/CordovaLib/Classes/CDVCamera.m
@@ -22,6 +22,8 @@
#import "NSDictionary+Extensions.h"
#import <MobileCoreServices/UTCoreTypes.h>
+#define CDV_PHOTO_PREFIX @"cdv_photo_"
+
static NSSet* org_apache_cordova_validArrowDirections;
@interface CDVCamera ()
@@ -164,6 +166,43 @@ static NSSet* org_apache_cordova_validArrowDirections;
[cameraPicker release];
}
+- (void) cleanup:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options
+{
+ NSString* callbackId = [arguments objectAtIndex:0];
+
+ // empty the tmp directory
+ NSFileManager* fileMgr = [[NSFileManager alloc] init];
+ NSError* err = nil;
+ BOOL hasErrors = NO;
+
+ // clear contents of NSTemporaryDirectory
+ NSString* tempDirectoryPath = NSTemporaryDirectory();
+ NSDirectoryEnumerator* directoryEnumerator = [fileMgr enumeratorAtPath:tempDirectoryPath];
+ NSString* fileName = nil;
+ BOOL result;
+
+ while ((fileName = [directoryEnumerator nextObject])) {
+ // only delete the files we created
+ if (![fileName hasPrefix:CDV_PHOTO_PREFIX]) {
+ continue;
+ }
+ NSString* filePath = [tempDirectoryPath stringByAppendingPathComponent:fileName];
+ result = [fileMgr removeItemAtPath:filePath error:&err];
+ if (!result && err) {
+ NSLog(@"Failed to delete: %@ (error: %@)", filePath, err);
+ hasErrors = YES;
+ }
+ }
+ [fileMgr release];
+
+ if (hasErrors) {
+ CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_IO_EXCEPTION messageAsString:@"One or more files failed to be deleted."];
+ [super writeJavascript:[pluginResult toErrorCallbackString:callbackId]];
+ } else {
+ CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
+ [super writeJavascript:[pluginResult toSuccessCallbackString:callbackId]];
+ }
+}
- (void) popoverControllerDidDismissPopover:(id)popoverController
{
@@ -260,7 +299,7 @@ static NSSet* org_apache_cordova_validArrowDirections;
int i = 1;
do
{
- filePath = [NSString stringWithFormat:@"%@/photo_%03d.%@", docsPath, i++, cameraPicker.encodingType == EncodingTypePNG ? @"png" : @"jpg"];
+ filePath = [NSString stringWithFormat:@"%@/%@%03d.%@", docsPath, CDV_PHOTO_PREFIX, i++, cameraPicker.encodingType == EncodingTypePNG ? @"png" : @"jpg"];
}
while ([fileMgr fileExistsAtPath: filePath]);