You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sn...@apache.org on 2014/08/22 16:15:07 UTC
[11/95] [abbrv] [partial] takes care of corrupted JSON files,
adds the eror message to dynamic properties
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCapture.h
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCapture.h b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCapture.h
deleted file mode 100644
index afb82b4..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCapture.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#import <Foundation/Foundation.h>
-#import <MobileCoreServices/MobileCoreServices.h>
-#import <AVFoundation/AVFoundation.h>
-#import "CDVPlugin.h"
-#import "CDVFile.h"
-
-enum CDVCaptureError {
- CAPTURE_INTERNAL_ERR = 0,
- CAPTURE_APPLICATION_BUSY = 1,
- CAPTURE_INVALID_ARGUMENT = 2,
- CAPTURE_NO_MEDIA_FILES = 3,
- CAPTURE_NOT_SUPPORTED = 20
-};
-typedef NSUInteger CDVCaptureError;
-
-@interface CDVImagePicker : UIImagePickerController
-{
- NSString* callbackid;
- NSInteger quality;
- NSString* mimeType;
-}
-@property (assign) NSInteger quality;
-@property (copy) NSString* callbackId;
-@property (copy) NSString* mimeType;
-
-@end
-
-@interface CDVCapture : CDVPlugin <UIImagePickerControllerDelegate, UINavigationControllerDelegate>
-{
- CDVImagePicker* pickerController;
- BOOL inUse;
-}
-@property BOOL inUse;
-- (void)captureAudio:(CDVInvokedUrlCommand*)command;
-- (void)captureImage:(CDVInvokedUrlCommand*)command;
-- (CDVPluginResult*)processImage:(UIImage*)image type:(NSString*)mimeType forCallbackId:(NSString*)callbackId;
-- (void)captureVideo:(CDVInvokedUrlCommand*)command;
-- (CDVPluginResult*)processVideo:(NSString*)moviePath forCallbackId:(NSString*)callbackId;
-- (void)getMediaModes:(CDVInvokedUrlCommand*)command;
-- (void)getFormatData:(CDVInvokedUrlCommand*)command;
-- (NSDictionary*)getMediaDictionaryFromPath:(NSString*)fullPath ofType:(NSString*)type;
-- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info;
-- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingImage:(UIImage*)image editingInfo:(NSDictionary*)editingInfo;
-- (void)imagePickerControllerDidCancel:(UIImagePickerController*)picker;
-
-@end
-
-@interface CDVAudioNavigationController : UINavigationController
-
-@end
-
-/* AudioRecorderViewController is used to create a simple view for audio recording.
- * It is created from [Capture captureAudio]. It creates a very simple interface for
- * recording by presenting just a record/stop button and a Done button to close the view.
- * The recording time is displayed and recording for a specified duration is supported. When duration
- * is specified there is no UI to the user - recording just stops when the specified
- * duration is reached. The UI has been minimized to avoid localization.
- */
-@interface CDVAudioRecorderViewController : UIViewController <AVAudioRecorderDelegate>
-{
- CDVCaptureError errorCode;
- NSString* callbackId;
- NSNumber* duration;
- CDVCapture* captureCommand;
- UIBarButtonItem* doneButton;
- UIView* recordingView;
- UIButton* recordButton;
- UIImage* recordImage;
- UIImage* stopRecordImage;
- UILabel* timerLabel;
- AVAudioRecorder* avRecorder;
- AVAudioSession* avSession;
- CDVPluginResult* pluginResult;
- NSTimer* timer;
- BOOL isTimed;
-}
-@property (nonatomic) CDVCaptureError errorCode;
-@property (nonatomic, copy) NSString* callbackId;
-@property (nonatomic, copy) NSNumber* duration;
-@property (nonatomic, strong) CDVCapture* captureCommand;
-@property (nonatomic, strong) UIBarButtonItem* doneButton;
-@property (nonatomic, strong) UIView* recordingView;
-@property (nonatomic, strong) UIButton* recordButton;
-@property (nonatomic, strong) UIImage* recordImage;
-@property (nonatomic, strong) UIImage* stopRecordImage;
-@property (nonatomic, strong) UILabel* timerLabel;
-@property (nonatomic, strong) AVAudioRecorder* avRecorder;
-@property (nonatomic, strong) AVAudioSession* avSession;
-@property (nonatomic, strong) CDVPluginResult* pluginResult;
-@property (nonatomic, strong) NSTimer* timer;
-@property (nonatomic) BOOL isTimed;
-
-- (id)initWithCommand:(CDVPlugin*)theCommand duration:(NSNumber*)theDuration callbackId:(NSString*)theCallbackId;
-- (void)processButton:(id)sender;
-- (void)stopRecordingCleanup;
-- (void)dismissAudioView:(id)sender;
-- (NSString*)formatTime:(int)interval;
-- (void)updateTime;
-@end
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCapture.m
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCapture.m b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCapture.m
deleted file mode 100644
index d89e3d3..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCapture.m
+++ /dev/null
@@ -1,847 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#import "CDVCapture.h"
-#import "CDVJSON.h"
-#import "CDVAvailability.h"
-
-#define kW3CMediaFormatHeight @"height"
-#define kW3CMediaFormatWidth @"width"
-#define kW3CMediaFormatCodecs @"codecs"
-#define kW3CMediaFormatBitrate @"bitrate"
-#define kW3CMediaFormatDuration @"duration"
-#define kW3CMediaModeType @"type"
-
-@implementation CDVImagePicker
-
-@synthesize quality;
-@synthesize callbackId;
-@synthesize mimeType;
-
-- (uint64_t)accessibilityTraits
-{
- NSString* systemVersion = [[UIDevice currentDevice] systemVersion];
-
- if (([systemVersion compare:@"4.0" options:NSNumericSearch] != NSOrderedAscending)) { // this means system version is not less than 4.0
- return UIAccessibilityTraitStartsMediaSession;
- }
-
- return UIAccessibilityTraitNone;
-}
-
-@end
-
-@implementation CDVCapture
-@synthesize inUse;
-
-- (id)initWithWebView:(UIWebView*)theWebView
-{
- self = (CDVCapture*)[super initWithWebView:theWebView];
- if (self) {
- self.inUse = NO;
- }
- return self;
-}
-
-- (void)captureAudio:(CDVInvokedUrlCommand*)command
-{
- NSString* callbackId = command.callbackId;
- NSDictionary* options = [command.arguments objectAtIndex:0];
-
- if ([options isKindOfClass:[NSNull class]]) {
- options = [NSDictionary dictionary];
- }
-
- NSNumber* duration = [options objectForKey:@"duration"];
- // the default value of duration is 0 so use nil (no duration) if default value
- if (duration) {
- duration = [duration doubleValue] == 0 ? nil : duration;
- }
- CDVPluginResult* result = nil;
-
- if (NSClassFromString(@"AVAudioRecorder") == nil) {
- result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageToErrorObject:CAPTURE_NOT_SUPPORTED];
- } else if (self.inUse == YES) {
- result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageToErrorObject:CAPTURE_APPLICATION_BUSY];
- } else {
- // all the work occurs here
- CDVAudioRecorderViewController* audioViewController = [[CDVAudioRecorderViewController alloc] initWithCommand:self duration:duration callbackId:callbackId];
-
- // Now create a nav controller and display the view...
- CDVAudioNavigationController* navController = [[CDVAudioNavigationController alloc] initWithRootViewController:audioViewController];
-
- self.inUse = YES;
-
- if ([self.viewController respondsToSelector:@selector(presentViewController:::)]) {
- [self.viewController presentViewController:navController animated:YES completion:nil];
- } else {
- [self.viewController presentModalViewController:navController animated:YES];
- }
- }
-
- if (result) {
- [self.commandDelegate sendPluginResult:result callbackId:callbackId];
- }
-}
-
-- (void)captureImage:(CDVInvokedUrlCommand*)command
-{
- NSString* callbackId = command.callbackId;
- NSDictionary* options = [command.arguments objectAtIndex:0];
-
- if ([options isKindOfClass:[NSNull class]]) {
- options = [NSDictionary dictionary];
- }
- NSString* mode = [options objectForKey:@"mode"];
-
- // options could contain limit and mode neither of which are supported at this time
- // taking more than one picture (limit) is only supported if provide own controls via cameraOverlayView property
- // can support mode in OS
-
- if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
- NSLog(@"Capture.imageCapture: camera not available.");
- CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageToErrorObject:CAPTURE_NOT_SUPPORTED];
- [self.commandDelegate sendPluginResult:result callbackId:callbackId];
- } else {
- if (pickerController == nil) {
- pickerController = [[CDVImagePicker alloc] init];
- }
-
- pickerController.delegate = self;
- pickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
- pickerController.allowsEditing = NO;
- if ([pickerController respondsToSelector:@selector(mediaTypes)]) {
- // iOS 3.0
- pickerController.mediaTypes = [NSArray arrayWithObjects:(NSString*)kUTTypeImage, nil];
- }
-
- /*if ([pickerController respondsToSelector:@selector(cameraCaptureMode)]){
- // iOS 4.0
- pickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
- pickerController.cameraDevice = UIImagePickerControllerCameraDeviceRear;
- pickerController.cameraFlashMode = UIImagePickerControllerCameraFlashModeAuto;
- }*/
- // CDVImagePicker specific property
- pickerController.callbackId = callbackId;
- pickerController.mimeType = mode;
-
- if ([self.viewController respondsToSelector:@selector(presentViewController:::)]) {
- [self.viewController presentViewController:pickerController animated:YES completion:nil];
- } else {
- [self.viewController presentModalViewController:pickerController animated:YES];
- }
- }
-}
-
-/* Process a still image from the camera.
- * IN:
- * UIImage* image - the UIImage data returned from the camera
- * NSString* callbackId
- */
-- (CDVPluginResult*)processImage:(UIImage*)image type:(NSString*)mimeType forCallbackId:(NSString*)callbackId
-{
- CDVPluginResult* result = nil;
-
- // save the image to photo album
- UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
-
- NSData* data = nil;
- if (mimeType && [mimeType isEqualToString:@"image/png"]) {
- data = UIImagePNGRepresentation(image);
- } else {
- data = UIImageJPEGRepresentation(image, 0.5);
- }
-
- // write to temp directory and return URI
- NSString* docsPath = [NSTemporaryDirectory()stringByStandardizingPath]; // use file system temporary directory
- NSError* err = nil;
- NSFileManager* fileMgr = [[NSFileManager alloc] init];
-
- // generate unique file name
- NSString* filePath;
- int i = 1;
- do {
- filePath = [NSString stringWithFormat:@"%@/photo_%03d.jpg", docsPath, i++];
- } while ([fileMgr fileExistsAtPath:filePath]);
-
- if (![data writeToFile:filePath options:NSAtomicWrite error:&err]) {
- result = [CDVPluginResult resultWithStatus:CDVCommandStatus_IO_EXCEPTION messageToErrorObject:CAPTURE_INTERNAL_ERR];
- if (err) {
- NSLog(@"Error saving image: %@", [err localizedDescription]);
- }
- } else {
- // create MediaFile object
-
- NSDictionary* fileDict = [self getMediaDictionaryFromPath:filePath ofType:mimeType];
- NSArray* fileArray = [NSArray arrayWithObject:fileDict];
-
- result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsArray:fileArray];
- }
-
- return result;
-}
-
-- (void)captureVideo:(CDVInvokedUrlCommand*)command
-{
- NSString* callbackId = command.callbackId;
- NSDictionary* options = [command.arguments objectAtIndex:0];
-
- if ([options isKindOfClass:[NSNull class]]) {
- options = [NSDictionary dictionary];
- }
-
- // options could contain limit, duration and mode, only duration is supported (but is not due to apple bug)
- // taking more than one video (limit) is only supported if provide own controls via cameraOverlayView property
- // NSNumber* duration = [options objectForKey:@"duration"];
- NSString* mediaType = nil;
-
- if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
- // there is a camera, it is available, make sure it can do movies
- pickerController = [[CDVImagePicker alloc] init];
-
- NSArray* types = nil;
- if ([UIImagePickerController respondsToSelector:@selector(availableMediaTypesForSourceType:)]) {
- types = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
- // NSLog(@"MediaTypes: %@", [types description]);
-
- if ([types containsObject:(NSString*)kUTTypeMovie]) {
- mediaType = (NSString*)kUTTypeMovie;
- } else if ([types containsObject:(NSString*)kUTTypeVideo]) {
- mediaType = (NSString*)kUTTypeVideo;
- }
- }
- }
- if (!mediaType) {
- // don't have video camera return error
- NSLog(@"Capture.captureVideo: video mode not available.");
- CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageToErrorObject:CAPTURE_NOT_SUPPORTED];
- [self.commandDelegate sendPluginResult:result callbackId:callbackId];
- pickerController = nil;
- } else {
- pickerController.delegate = self;
- pickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
- pickerController.allowsEditing = NO;
- // iOS 3.0
- pickerController.mediaTypes = [NSArray arrayWithObjects:mediaType, nil];
-
- /*if ([mediaType isEqualToString:(NSString*)kUTTypeMovie]){
- if (duration) {
- pickerController.videoMaximumDuration = [duration doubleValue];
- }
- //NSLog(@"pickerController.videoMaximumDuration = %f", pickerController.videoMaximumDuration);
- }*/
-
- // iOS 4.0
- if ([pickerController respondsToSelector:@selector(cameraCaptureMode)]) {
- pickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;
- // pickerController.videoQuality = UIImagePickerControllerQualityTypeHigh;
- // pickerController.cameraDevice = UIImagePickerControllerCameraDeviceRear;
- // pickerController.cameraFlashMode = UIImagePickerControllerCameraFlashModeAuto;
- }
- // CDVImagePicker specific property
- pickerController.callbackId = callbackId;
-
- if ([self.viewController respondsToSelector:@selector(presentViewController:::)]) {
- [self.viewController presentViewController:pickerController animated:YES completion:nil];
- } else {
- [self.viewController presentModalViewController:pickerController animated:YES];
- }
- }
-}
-
-- (CDVPluginResult*)processVideo:(NSString*)moviePath forCallbackId:(NSString*)callbackId
-{
- // save the movie to photo album (only avail as of iOS 3.1)
-
- /* don't need, it should automatically get saved
- NSLog(@"can save %@: %d ?", moviePath, UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(moviePath));
- if (&UIVideoAtPathIsCompatibleWithSavedPhotosAlbum != NULL && UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(moviePath) == YES) {
- NSLog(@"try to save movie");
- UISaveVideoAtPathToSavedPhotosAlbum(moviePath, nil, nil, nil);
- NSLog(@"finished saving movie");
- }*/
- // create MediaFile object
- NSDictionary* fileDict = [self getMediaDictionaryFromPath:moviePath ofType:nil];
- NSArray* fileArray = [NSArray arrayWithObject:fileDict];
-
- return [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsArray:fileArray];
-}
-
-- (void)getMediaModes:(CDVInvokedUrlCommand*)command
-{
- // NSString* callbackId = [arguments objectAtIndex:0];
- // NSMutableDictionary* imageModes = nil;
- NSArray* imageArray = nil;
- NSArray* movieArray = nil;
- NSArray* audioArray = nil;
-
- if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
- // there is a camera, find the modes
- // can get image/jpeg or image/png from camera
-
- /* can't find a way to get the default height and width and other info
- * for images/movies taken with UIImagePickerController
- */
- NSDictionary* jpg = [NSDictionary dictionaryWithObjectsAndKeys:
- [NSNumber numberWithInt:0], kW3CMediaFormatHeight,
- [NSNumber numberWithInt:0], kW3CMediaFormatWidth,
- @"image/jpeg", kW3CMediaModeType,
- nil];
- NSDictionary* png = [NSDictionary dictionaryWithObjectsAndKeys:
- [NSNumber numberWithInt:0], kW3CMediaFormatHeight,
- [NSNumber numberWithInt:0], kW3CMediaFormatWidth,
- @"image/png", kW3CMediaModeType,
- nil];
- imageArray = [NSArray arrayWithObjects:jpg, png, nil];
-
- if ([UIImagePickerController respondsToSelector:@selector(availableMediaTypesForSourceType:)]) {
- NSArray* types = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
-
- if ([types containsObject:(NSString*)kUTTypeMovie]) {
- NSDictionary* mov = [NSDictionary dictionaryWithObjectsAndKeys:
- [NSNumber numberWithInt:0], kW3CMediaFormatHeight,
- [NSNumber numberWithInt:0], kW3CMediaFormatWidth,
- @"video/quicktime", kW3CMediaModeType,
- nil];
- movieArray = [NSArray arrayWithObject:mov];
- }
- }
- }
- NSDictionary* modes = [NSDictionary dictionaryWithObjectsAndKeys:
- imageArray ? (NSObject*) imageArray:[NSNull null], @"image",
- movieArray ? (NSObject*) movieArray:[NSNull null], @"video",
- audioArray ? (NSObject*) audioArray:[NSNull null], @"audio",
- nil];
- NSString* jsString = [NSString stringWithFormat:@"navigator.device.capture.setSupportedModes(%@);", [modes JSONString]];
- [self.commandDelegate evalJs:jsString];
-}
-
-- (void)getFormatData:(CDVInvokedUrlCommand*)command
-{
- NSString* callbackId = command.callbackId;
- // existence of fullPath checked on JS side
- NSString* fullPath = [command.arguments objectAtIndex:0];
- // mimeType could be null
- NSString* mimeType = nil;
-
- if ([command.arguments count] > 1) {
- mimeType = [command.arguments objectAtIndex:1];
- }
- BOOL bError = NO;
- CDVCaptureError errorCode = CAPTURE_INTERNAL_ERR;
- CDVPluginResult* result = nil;
-
- if (!mimeType || [mimeType isKindOfClass:[NSNull class]]) {
- // try to determine mime type if not provided
- id command = [self.commandDelegate getCommandInstance:@"File"];
- bError = !([command isKindOfClass:[CDVFile class]]);
- if (!bError) {
- CDVFile* cdvFile = (CDVFile*)command;
- mimeType = [cdvFile getMimeTypeFromPath:fullPath];
- if (!mimeType) {
- // can't do much without mimeType, return error
- bError = YES;
- errorCode = CAPTURE_INVALID_ARGUMENT;
- }
- }
- }
- if (!bError) {
- // create and initialize return dictionary
- NSMutableDictionary* formatData = [NSMutableDictionary dictionaryWithCapacity:5];
- [formatData setObject:[NSNull null] forKey:kW3CMediaFormatCodecs];
- [formatData setObject:[NSNumber numberWithInt:0] forKey:kW3CMediaFormatBitrate];
- [formatData setObject:[NSNumber numberWithInt:0] forKey:kW3CMediaFormatHeight];
- [formatData setObject:[NSNumber numberWithInt:0] forKey:kW3CMediaFormatWidth];
- [formatData setObject:[NSNumber numberWithInt:0] forKey:kW3CMediaFormatDuration];
-
- if ([mimeType rangeOfString:@"image/"].location != NSNotFound) {
- UIImage* image = [UIImage imageWithContentsOfFile:fullPath];
- if (image) {
- CGSize imgSize = [image size];
- [formatData setObject:[NSNumber numberWithInteger:imgSize.width] forKey:kW3CMediaFormatWidth];
- [formatData setObject:[NSNumber numberWithInteger:imgSize.height] forKey:kW3CMediaFormatHeight];
- }
- } else if (([mimeType rangeOfString:@"video/"].location != NSNotFound) && (NSClassFromString(@"AVURLAsset") != nil)) {
- NSURL* movieURL = [NSURL fileURLWithPath:fullPath];
- AVURLAsset* movieAsset = [[AVURLAsset alloc] initWithURL:movieURL options:nil];
- CMTime duration = [movieAsset duration];
- [formatData setObject:[NSNumber numberWithFloat:CMTimeGetSeconds(duration)] forKey:kW3CMediaFormatDuration];
-
- NSArray* allVideoTracks = [movieAsset tracksWithMediaType:AVMediaTypeVideo];
- if ([allVideoTracks count] > 0) {
- AVAssetTrack* track = [[movieAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0];
- CGSize size = [track naturalSize];
-
- [formatData setObject:[NSNumber numberWithFloat:size.height] forKey:kW3CMediaFormatHeight];
- [formatData setObject:[NSNumber numberWithFloat:size.width] forKey:kW3CMediaFormatWidth];
- // not sure how to get codecs or bitrate???
- // AVMetadataItem
- // AudioFile
- } else {
- NSLog(@"No video tracks found for %@", fullPath);
- }
- } else if ([mimeType rangeOfString:@"audio/"].location != NSNotFound) {
- if (NSClassFromString(@"AVAudioPlayer") != nil) {
- NSURL* fileURL = [NSURL fileURLWithPath:fullPath];
- NSError* err = nil;
-
- AVAudioPlayer* avPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:&err];
- if (!err) {
- // get the data
- [formatData setObject:[NSNumber numberWithDouble:[avPlayer duration]] forKey:kW3CMediaFormatDuration];
- if ([avPlayer respondsToSelector:@selector(settings)]) {
- NSDictionary* info = [avPlayer settings];
- NSNumber* bitRate = [info objectForKey:AVEncoderBitRateKey];
- if (bitRate) {
- [formatData setObject:bitRate forKey:kW3CMediaFormatBitrate];
- }
- }
- } // else leave data init'ed to 0
- }
- }
- result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:formatData];
- // NSLog(@"getFormatData: %@", [formatData description]);
- }
- if (bError) {
- result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageToErrorObject:errorCode];
- }
- if (result) {
- [self.commandDelegate sendPluginResult:result callbackId:callbackId];
- }
-}
-
-- (NSDictionary*)getMediaDictionaryFromPath:(NSString*)fullPath ofType:(NSString*)type
-{
- NSFileManager* fileMgr = [[NSFileManager alloc] init];
- NSMutableDictionary* fileDict = [NSMutableDictionary dictionaryWithCapacity:5];
-
- [fileDict setObject:[fullPath lastPathComponent] forKey:@"name"];
- [fileDict setObject:fullPath forKey:@"fullPath"];
- // determine type
- if (!type) {
- id command = [self.commandDelegate getCommandInstance:@"File"];
- if ([command isKindOfClass:[CDVFile class]]) {
- CDVFile* cdvFile = (CDVFile*)command;
- NSString* mimeType = [cdvFile getMimeTypeFromPath:fullPath];
- [fileDict setObject:(mimeType != nil ? (NSObject*)mimeType : [NSNull null]) forKey:@"type"];
- }
- }
- NSDictionary* fileAttrs = [fileMgr attributesOfItemAtPath:fullPath error:nil];
- [fileDict setObject:[NSNumber numberWithUnsignedLongLong:[fileAttrs fileSize]] forKey:@"size"];
- NSDate* modDate = [fileAttrs fileModificationDate];
- NSNumber* msDate = [NSNumber numberWithDouble:[modDate timeIntervalSince1970] * 1000];
- [fileDict setObject:msDate forKey:@"lastModifiedDate"];
-
- return fileDict;
-}
-
-- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingImage:(UIImage*)image editingInfo:(NSDictionary*)editingInfo
-{
- // older api calls new one
- [self imagePickerController:picker didFinishPickingMediaWithInfo:editingInfo];
-}
-
-/* Called when image/movie is finished recording.
- * Calls success or error code as appropriate
- * if successful, result contains an array (with just one entry since can only get one image unless build own camera UI) of MediaFile object representing the image
- * name
- * fullPath
- * type
- * lastModifiedDate
- * size
- */
-- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info
-{
- CDVImagePicker* cameraPicker = (CDVImagePicker*)picker;
- NSString* callbackId = cameraPicker.callbackId;
-
- if ([picker respondsToSelector:@selector(presentingViewController)]) {
- [[picker presentingViewController] dismissModalViewControllerAnimated:YES];
- } else {
- [[picker parentViewController] dismissModalViewControllerAnimated:YES];
- }
-
- CDVPluginResult* result = nil;
-
- UIImage* image = nil;
- NSString* mediaType = [info objectForKey:UIImagePickerControllerMediaType];
- if (!mediaType || [mediaType isEqualToString:(NSString*)kUTTypeImage]) {
- // mediaType is nil then only option is UIImagePickerControllerOriginalImage
- if ([UIImagePickerController respondsToSelector:@selector(allowsEditing)] &&
- (cameraPicker.allowsEditing && [info objectForKey:UIImagePickerControllerEditedImage])) {
- image = [info objectForKey:UIImagePickerControllerEditedImage];
- } else {
- image = [info objectForKey:UIImagePickerControllerOriginalImage];
- }
- }
- if (image != nil) {
- // mediaType was image
- result = [self processImage:image type:cameraPicker.mimeType forCallbackId:callbackId];
- } else if ([mediaType isEqualToString:(NSString*)kUTTypeMovie]) {
- // process video
- NSString* moviePath = [[info objectForKey:UIImagePickerControllerMediaURL] path];
- if (moviePath) {
- result = [self processVideo:moviePath forCallbackId:callbackId];
- }
- }
- if (!result) {
- result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageToErrorObject:CAPTURE_INTERNAL_ERR];
- }
- [self.commandDelegate sendPluginResult:result callbackId:callbackId];
- pickerController = nil;
-}
-
-- (void)imagePickerControllerDidCancel:(UIImagePickerController*)picker
-{
- CDVImagePicker* cameraPicker = (CDVImagePicker*)picker;
- NSString* callbackId = cameraPicker.callbackId;
-
- if ([picker respondsToSelector:@selector(presentingViewController)]) {
- [[picker presentingViewController] dismissModalViewControllerAnimated:YES];
- } else {
- [[picker parentViewController] dismissModalViewControllerAnimated:YES];
- }
-
- CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageToErrorObject:CAPTURE_NO_MEDIA_FILES];
- [self.commandDelegate sendPluginResult:result callbackId:callbackId];
- pickerController = nil;
-}
-
-@end
-
-@implementation CDVAudioNavigationController
-
-#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 60000
- - (NSUInteger)supportedInterfaceOrientations
- {
- // delegate to CVDAudioRecorderViewController
- return [self.topViewController supportedInterfaceOrientations];
- }
-#endif
-
-@end
-
-@implementation CDVAudioRecorderViewController
-@synthesize errorCode, callbackId, duration, captureCommand, doneButton, recordingView, recordButton, recordImage, stopRecordImage, timerLabel, avRecorder, avSession, pluginResult, timer, isTimed;
-
-- (NSString*)resolveImageResource:(NSString*)resource
-{
- NSString* systemVersion = [[UIDevice currentDevice] systemVersion];
- BOOL isLessThaniOS4 = ([systemVersion compare:@"4.0" options:NSNumericSearch] == NSOrderedAscending);
-
- // the iPad image (nor retina) differentiation code was not in 3.x, and we have to explicitly set the path
- // if user wants iPhone only app to run on iPad they must remove *~ipad.* images from capture.bundle
- if (isLessThaniOS4) {
- NSString* iPadResource = [NSString stringWithFormat:@"%@~ipad.png", resource];
- if (CDV_IsIPad() && [UIImage imageNamed:iPadResource]) {
- return iPadResource;
- } else {
- return [NSString stringWithFormat:@"%@.png", resource];
- }
- }
-
- return resource;
-}
-
-- (id)initWithCommand:(CDVCapture*)theCommand duration:(NSNumber*)theDuration callbackId:(NSString*)theCallbackId
-{
- if ((self = [super init])) {
- self.captureCommand = theCommand;
- self.duration = theDuration;
- self.callbackId = theCallbackId;
- self.errorCode = CAPTURE_NO_MEDIA_FILES;
- self.isTimed = self.duration != nil;
-
- return self;
- }
-
- return nil;
-}
-
-- (void)loadView
-{
- // create view and display
- CGRect viewRect = [[UIScreen mainScreen] applicationFrame];
- UIView* tmp = [[UIView alloc] initWithFrame:viewRect];
-
- // make backgrounds
- NSString* microphoneResource = @"Capture.bundle/microphone";
-
- if (CDV_IsIPhone5()) {
- microphoneResource = @"Capture.bundle/microphone-568h";
- }
-
- UIImage* microphone = [UIImage imageNamed:[self resolveImageResource:microphoneResource]];
- UIView* microphoneView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, viewRect.size.width, microphone.size.height)];
- [microphoneView setBackgroundColor:[UIColor colorWithPatternImage:microphone]];
- [microphoneView setUserInteractionEnabled:NO];
- [microphoneView setIsAccessibilityElement:NO];
- [tmp addSubview:microphoneView];
-
- // add bottom bar view
- UIImage* grayBkg = [UIImage imageNamed:[self resolveImageResource:@"Capture.bundle/controls_bg"]];
- UIView* controls = [[UIView alloc] initWithFrame:CGRectMake(0, microphone.size.height, viewRect.size.width, grayBkg.size.height)];
- [controls setBackgroundColor:[UIColor colorWithPatternImage:grayBkg]];
- [controls setUserInteractionEnabled:NO];
- [controls setIsAccessibilityElement:NO];
- [tmp addSubview:controls];
-
- // make red recording background view
- UIImage* recordingBkg = [UIImage imageNamed:[self resolveImageResource:@"Capture.bundle/recording_bg"]];
- UIColor* background = [UIColor colorWithPatternImage:recordingBkg];
- self.recordingView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, viewRect.size.width, recordingBkg.size.height)];
- [self.recordingView setBackgroundColor:background];
- [self.recordingView setHidden:YES];
- [self.recordingView setUserInteractionEnabled:NO];
- [self.recordingView setIsAccessibilityElement:NO];
- [tmp addSubview:self.recordingView];
-
- // add label
- self.timerLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, viewRect.size.width, recordingBkg.size.height)];
- // timerLabel.autoresizingMask = reSizeMask;
- [self.timerLabel setBackgroundColor:[UIColor clearColor]];
- [self.timerLabel setTextColor:[UIColor whiteColor]];
- [self.timerLabel setTextAlignment:UITextAlignmentCenter];
- [self.timerLabel setText:@"0:00"];
- [self.timerLabel setAccessibilityHint:NSLocalizedString(@"recorded time in minutes and seconds", nil)];
- self.timerLabel.accessibilityTraits |= UIAccessibilityTraitUpdatesFrequently;
- self.timerLabel.accessibilityTraits &= ~UIAccessibilityTraitStaticText;
- [tmp addSubview:self.timerLabel];
-
- // Add record button
-
- self.recordImage = [UIImage imageNamed:[self resolveImageResource:@"Capture.bundle/record_button"]];
- self.stopRecordImage = [UIImage imageNamed:[self resolveImageResource:@"Capture.bundle/stop_button"]];
- self.recordButton.accessibilityTraits |= [self accessibilityTraits];
- self.recordButton = [[UIButton alloc] initWithFrame:CGRectMake((viewRect.size.width - recordImage.size.width) / 2, (microphone.size.height + (grayBkg.size.height - recordImage.size.height) / 2), recordImage.size.width, recordImage.size.height)];
- [self.recordButton setAccessibilityLabel:NSLocalizedString(@"toggle audio recording", nil)];
- [self.recordButton setImage:recordImage forState:UIControlStateNormal];
- [self.recordButton addTarget:self action:@selector(processButton:) forControlEvents:UIControlEventTouchUpInside];
- [tmp addSubview:recordButton];
-
- // make and add done button to navigation bar
- self.doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissAudioView:)];
- [self.doneButton setStyle:UIBarButtonItemStyleDone];
- self.navigationItem.rightBarButtonItem = self.doneButton;
-
- [self setView:tmp];
-}
-
-- (void)viewDidLoad
-{
- [super viewDidLoad];
- UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, nil);
- NSError* error = nil;
-
- if (self.avSession == nil) {
- // create audio session
- self.avSession = [AVAudioSession sharedInstance];
- if (error) {
- // return error if can't create recording audio session
- NSLog(@"error creating audio session: %@", [[error userInfo] description]);
- self.errorCode = CAPTURE_INTERNAL_ERR;
- [self dismissAudioView:nil];
- }
- }
-
- // create file to record to in temporary dir
-
- NSString* docsPath = [NSTemporaryDirectory()stringByStandardizingPath]; // use file system temporary directory
- NSError* err = nil;
- NSFileManager* fileMgr = [[NSFileManager alloc] init];
-
- // generate unique file name
- NSString* filePath;
- int i = 1;
- do {
- filePath = [NSString stringWithFormat:@"%@/audio_%03d.wav", docsPath, i++];
- } while ([fileMgr fileExistsAtPath:filePath]);
-
- NSURL* fileURL = [NSURL fileURLWithPath:filePath isDirectory:NO];
-
- // create AVAudioPlayer
- self.avRecorder = [[AVAudioRecorder alloc] initWithURL:fileURL settings:nil error:&err];
- if (err) {
- NSLog(@"Failed to initialize AVAudioRecorder: %@\n", [err localizedDescription]);
- self.avRecorder = nil;
- // return error
- self.errorCode = CAPTURE_INTERNAL_ERR;
- [self dismissAudioView:nil];
- } else {
- self.avRecorder.delegate = self;
- [self.avRecorder prepareToRecord];
- self.recordButton.enabled = YES;
- self.doneButton.enabled = YES;
- }
-}
-
-#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 60000
- - (NSUInteger)supportedInterfaceOrientations
- {
- NSUInteger orientation = UIInterfaceOrientationMaskPortrait; // must support portrait
- NSUInteger supported = [captureCommand.viewController supportedInterfaceOrientations];
-
- orientation = orientation | (supported & UIInterfaceOrientationMaskPortraitUpsideDown);
- return orientation;
- }
-#endif
-
-- (void)viewDidUnload
-{
- [self setView:nil];
- [self.captureCommand setInUse:NO];
-}
-
-- (void)processButton:(id)sender
-{
- if (self.avRecorder.recording) {
- // stop recording
- [self.avRecorder stop];
- self.isTimed = NO; // recording was stopped via button so reset isTimed
- // view cleanup will occur in audioRecordingDidFinishRecording
- } else {
- // begin recording
- [self.recordButton setImage:stopRecordImage forState:UIControlStateNormal];
- self.recordButton.accessibilityTraits &= ~[self accessibilityTraits];
- [self.recordingView setHidden:NO];
- NSError* error = nil;
- [self.avSession setCategory:AVAudioSessionCategoryRecord error:&error];
- [self.avSession setActive:YES error:&error];
- if (error) {
- // can't continue without active audio session
- self.errorCode = CAPTURE_INTERNAL_ERR;
- [self dismissAudioView:nil];
- } else {
- if (self.duration) {
- self.isTimed = true;
- [self.avRecorder recordForDuration:[duration doubleValue]];
- } else {
- [self.avRecorder record];
- }
- [self.timerLabel setText:@"0.00"];
- self.timer = [NSTimer scheduledTimerWithTimeInterval:0.5f target:self selector:@selector(updateTime) userInfo:nil repeats:YES];
- self.doneButton.enabled = NO;
- }
- UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, nil);
- }
-}
-
-/*
- * helper method to clean up when stop recording
- */
-- (void)stopRecordingCleanup
-{
- if (self.avRecorder.recording) {
- [self.avRecorder stop];
- }
- [self.recordButton setImage:recordImage forState:UIControlStateNormal];
- self.recordButton.accessibilityTraits |= [self accessibilityTraits];
- [self.recordingView setHidden:YES];
- self.doneButton.enabled = YES;
- if (self.avSession) {
- // deactivate session so sounds can come through
- [self.avSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
- [self.avSession setActive:NO error:nil];
- }
- if (self.duration && self.isTimed) {
- // VoiceOver announcement so user knows timed recording has finished
- BOOL isUIAccessibilityAnnouncementNotification = (&UIAccessibilityAnnouncementNotification != NULL);
- if (isUIAccessibilityAnnouncementNotification) {
- dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 500ull * NSEC_PER_MSEC), dispatch_get_main_queue(), ^{
- UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, NSLocalizedString(@"timed recording complete", nil));
- });
- }
- } else {
- // issue a layout notification change so that VO will reannounce the button label when recording completes
- UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, nil);
- }
-}
-
-- (void)dismissAudioView:(id)sender
-{
- // called when done button pressed or when error condition to do cleanup and remove view
- if ([self.captureCommand.viewController.modalViewController respondsToSelector:@selector(presentingViewController)]) {
- [[self.captureCommand.viewController.modalViewController presentingViewController] dismissModalViewControllerAnimated:YES];
- } else {
- [[self.captureCommand.viewController.modalViewController parentViewController] dismissModalViewControllerAnimated:YES];
- }
-
- if (!self.pluginResult) {
- // return error
- self.pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageToErrorObject:self.errorCode];
- }
-
- self.avRecorder = nil;
- [self.avSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
- [self.avSession setActive:NO error:nil];
- [self.captureCommand setInUse:NO];
- UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, nil);
- // return result
- [self.captureCommand.commandDelegate sendPluginResult:pluginResult callbackId:callbackId];
-}
-
-- (void)updateTime
-{
- // update the label with the elapsed time
- [self.timerLabel setText:[self formatTime:self.avRecorder.currentTime]];
-}
-
-- (NSString*)formatTime:(int)interval
-{
- // is this format universal?
- int secs = interval % 60;
- int min = interval / 60;
-
- if (interval < 60) {
- return [NSString stringWithFormat:@"0:%02d", interval];
- } else {
- return [NSString stringWithFormat:@"%d:%02d", min, secs];
- }
-}
-
-- (void)audioRecorderDidFinishRecording:(AVAudioRecorder*)recorder successfully:(BOOL)flag
-{
- // may be called when timed audio finishes - need to stop time and reset buttons
- [self.timer invalidate];
- [self stopRecordingCleanup];
-
- // generate success result
- if (flag) {
- NSString* filePath = [avRecorder.url path];
- // NSLog(@"filePath: %@", filePath);
- NSDictionary* fileDict = [captureCommand getMediaDictionaryFromPath:filePath ofType:@"audio/wav"];
- NSArray* fileArray = [NSArray arrayWithObject:fileDict];
-
- self.pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsArray:fileArray];
- } else {
- self.pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_IO_EXCEPTION messageToErrorObject:CAPTURE_INTERNAL_ERR];
- }
-}
-
-- (void)audioRecorderEncodeErrorDidOccur:(AVAudioRecorder*)recorder error:(NSError*)error
-{
- [self.timer invalidate];
- [self stopRecordingCleanup];
-
- NSLog(@"error recording audio");
- self.pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_IO_EXCEPTION messageToErrorObject:CAPTURE_INTERNAL_ERR];
- [self dismissAudioView:nil];
-}
-
-@end
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCommandDelegate.h
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCommandDelegate.h b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCommandDelegate.h
deleted file mode 100644
index 0401136..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCommandDelegate.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#import "CDVAvailability.h"
-#import "CDVInvokedUrlCommand.h"
-
-@class CDVPlugin;
-@class CDVPluginResult;
-@class CDVWhitelist;
-
-@protocol CDVCommandDelegate <NSObject>
-
-@property (nonatomic, readonly) NSDictionary* settings;
-
-- (NSString*)pathForResource:(NSString*)resourcepath;
-- (id)getCommandInstance:(NSString*)pluginName;
-
-// Plugins should not be using this interface to call other plugins since it
-// will result in bogus callbacks being made.
-- (BOOL)execute:(CDVInvokedUrlCommand*)command CDV_DEPRECATED(2.2, "Use direct method calls instead.");
-
-// Sends a plugin result to the JS. This is thread-safe.
-- (void)sendPluginResult:(CDVPluginResult*)result callbackId:(NSString*)callbackId;
-// Evaluates the given JS. This is thread-safe.
-- (void)evalJs:(NSString*)js;
-// Can be used to evaluate JS right away instead of scheduling it on the run-loop.
-// This is required for dispatch resign and pause events, but should not be used
-// without reason. Without the run-loop delay, alerts used in JS callbacks may result
-// in dead-lock. This method must be called from the UI thread.
-- (void)evalJs:(NSString*)js scheduledOnRunLoop:(BOOL)scheduledOnRunLoop;
-// Runs the given block on a background thread using a shared thread-pool.
-- (void)runInBackground:(void (^)())block;
-// Returns the User-Agent of the associated UIWebView.
-- (NSString*)userAgent;
-// Returns whether the given URL passes the white-list.
-- (BOOL)URLIsWhitelisted:(NSURL*)url;
-
-@end
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCommandDelegateImpl.h
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCommandDelegateImpl.h b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCommandDelegateImpl.h
deleted file mode 100644
index 6735136..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCommandDelegateImpl.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#import <UIKit/UIKit.h>
-#import "CDVCommandDelegate.h"
-
-@class CDVViewController;
-@class CDVCommandQueue;
-
-@interface CDVCommandDelegateImpl : NSObject <CDVCommandDelegate>{
- @private
- __weak CDVViewController* _viewController;
- @protected
- __weak CDVCommandQueue* _commandQueue;
-}
-- (id)initWithViewController:(CDVViewController*)viewController;
-@end
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCommandDelegateImpl.m
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCommandDelegateImpl.m b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCommandDelegateImpl.m
deleted file mode 100644
index fa0e5e0..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCommandDelegateImpl.m
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#import "CDVCommandDelegateImpl.h"
-#import "CDVJSON.h"
-#import "CDVCommandQueue.h"
-#import "CDVPluginResult.h"
-#import "CDVViewController.h"
-
-@implementation CDVCommandDelegateImpl
-
-- (id)initWithViewController:(CDVViewController*)viewController
-{
- self = [super init];
- if (self != nil) {
- _viewController = viewController;
- _commandQueue = _viewController.commandQueue;
- }
- return self;
-}
-
-- (NSString*)pathForResource:(NSString*)resourcepath
-{
- NSBundle* mainBundle = [NSBundle mainBundle];
- NSMutableArray* directoryParts = [NSMutableArray arrayWithArray:[resourcepath componentsSeparatedByString:@"/"]];
- NSString* filename = [directoryParts lastObject];
-
- [directoryParts removeLastObject];
-
- NSString* directoryPartsJoined = [directoryParts componentsJoinedByString:@"/"];
- NSString* directoryStr = _viewController.wwwFolderName;
-
- if ([directoryPartsJoined length] > 0) {
- directoryStr = [NSString stringWithFormat:@"%@/%@", _viewController.wwwFolderName, [directoryParts componentsJoinedByString:@"/"]];
- }
-
- return [mainBundle pathForResource:filename ofType:@"" inDirectory:directoryStr];
-}
-
-- (void)evalJsHelper2:(NSString*)js
-{
- CDV_EXEC_LOG(@"Exec: evalling: %@", [js substringToIndex:MIN([js length], 160)]);
- NSString* commandsJSON = [_viewController.webView stringByEvaluatingJavaScriptFromString:js];
- if ([commandsJSON length] > 0) {
- CDV_EXEC_LOG(@"Exec: Retrieved new exec messages by chaining.");
- }
-
- [_commandQueue enqueCommandBatch:commandsJSON];
-}
-
-- (void)evalJsHelper:(NSString*)js
-{
- // Cycle the run-loop before executing the JS.
- // This works around a bug where sometimes alerts() within callbacks can cause
- // dead-lock.
- // If the commandQueue is currently executing, then we know that it is safe to
- // execute the callback immediately.
- // Using (dispatch_get_main_queue()) does *not* fix deadlocks for some reaon,
- // but performSelectorOnMainThread: does.
- if (![NSThread isMainThread] || !_commandQueue.currentlyExecuting) {
- [self performSelectorOnMainThread:@selector(evalJsHelper2:) withObject:js waitUntilDone:NO];
- } else {
- [self evalJsHelper2:js];
- }
-}
-
-- (void)sendPluginResult:(CDVPluginResult*)result callbackId:(NSString*)callbackId
-{
- CDV_EXEC_LOG(@"Exec(%@): Sending result. Status=%@", callbackId, result.status);
- // This occurs when there is are no win/fail callbacks for the call.
- if ([@"INVALID" isEqualToString : callbackId]) {
- return;
- }
- int status = [result.status intValue];
- BOOL keepCallback = [result.keepCallback boolValue];
- NSString* argumentsAsJSON = [result argumentsAsJSON];
-
- NSString* js = [NSString stringWithFormat:@"cordova.require('cordova/exec').nativeCallback('%@',%d,%@,%d)", callbackId, status, argumentsAsJSON, keepCallback];
-
- [self evalJsHelper:js];
-}
-
-- (void)evalJs:(NSString*)js
-{
- [self evalJs:js scheduledOnRunLoop:YES];
-}
-
-- (void)evalJs:(NSString*)js scheduledOnRunLoop:(BOOL)scheduledOnRunLoop
-{
- js = [NSString stringWithFormat:@"cordova.require('cordova/exec').nativeEvalAndFetch(function(){%@})", js];
- if (scheduledOnRunLoop) {
- [self evalJsHelper:js];
- } else {
- [self evalJsHelper2:js];
- }
-}
-
-- (BOOL)execute:(CDVInvokedUrlCommand*)command
-{
- return [_commandQueue execute:command];
-}
-
-- (id)getCommandInstance:(NSString*)pluginName
-{
- return [_viewController getCommandInstance:pluginName];
-}
-
-- (void)runInBackground:(void (^)())block
-{
- dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), block);
-}
-
-- (NSString*)userAgent
-{
- return [_viewController userAgent];
-}
-
-- (BOOL)URLIsWhitelisted:(NSURL*)url
-{
- return ![_viewController.whitelist schemeIsAllowed:[url scheme]] ||
- [_viewController.whitelist URLIsAllowed:url];
-}
-
-- (NSDictionary*)settings
-{
- return _viewController.settings;
-}
-
-@end
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCommandQueue.h
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCommandQueue.h b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCommandQueue.h
deleted file mode 100644
index 27c47b5..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCommandQueue.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#import <Foundation/Foundation.h>
-
-@class CDVInvokedUrlCommand;
-@class CDVViewController;
-
-@interface CDVCommandQueue : NSObject
-
-@property (nonatomic, readonly) BOOL currentlyExecuting;
-
-- (id)initWithViewController:(CDVViewController*)viewController;
-- (void)dispose;
-
-- (void)resetRequestId;
-- (void)enqueCommandBatch:(NSString*)batchJSON;
-
-- (void)maybeFetchCommandsFromJs:(NSNumber*)requestId;
-- (void)fetchCommandsFromJs;
-- (void)executePending;
-- (BOOL)execute:(CDVInvokedUrlCommand*)command;
-
-@end
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCommandQueue.m
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCommandQueue.m b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCommandQueue.m
deleted file mode 100644
index 1a0dfa0..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCommandQueue.m
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#include <objc/message.h>
-#import "CDV.h"
-#import "CDVCommandQueue.h"
-#import "CDVViewController.h"
-#import "CDVCommandDelegateImpl.h"
-
-@interface CDVCommandQueue () {
- NSInteger _lastCommandQueueFlushRequestId;
- __weak CDVViewController* _viewController;
- NSMutableArray* _queue;
- BOOL _currentlyExecuting;
-}
-@end
-
-@implementation CDVCommandQueue
-
-@synthesize currentlyExecuting = _currentlyExecuting;
-
-- (id)initWithViewController:(CDVViewController*)viewController
-{
- self = [super init];
- if (self != nil) {
- _viewController = viewController;
- _queue = [[NSMutableArray alloc] init];
- }
- return self;
-}
-
-- (void)dispose
-{
- // TODO(agrieve): Make this a zeroing weak ref once we drop support for 4.3.
- _viewController = nil;
-}
-
-- (void)resetRequestId
-{
- _lastCommandQueueFlushRequestId = 0;
-}
-
-- (void)enqueCommandBatch:(NSString*)batchJSON
-{
- if ([batchJSON length] > 0) {
- [_queue addObject:batchJSON];
- [self executePending];
- }
-}
-
-- (void)maybeFetchCommandsFromJs:(NSNumber*)requestId
-{
- // Use the request ID to determine if we've already flushed for this request.
- // This is required only because the NSURLProtocol enqueues the same request
- // multiple times.
- if ([requestId integerValue] > _lastCommandQueueFlushRequestId) {
- _lastCommandQueueFlushRequestId = [requestId integerValue];
- [self fetchCommandsFromJs];
- }
-}
-
-- (void)fetchCommandsFromJs
-{
- // Grab all the queued commands from the JS side.
- NSString* queuedCommandsJSON = [_viewController.webView stringByEvaluatingJavaScriptFromString:
- @"cordova.require('cordova/exec').nativeFetchMessages()"];
-
- [self enqueCommandBatch:queuedCommandsJSON];
- if ([queuedCommandsJSON length] > 0) {
- CDV_EXEC_LOG(@"Exec: Retrieved new exec messages by request.");
- }
-}
-
-- (void)executePending
-{
- // Make us re-entrant-safe.
- if (_currentlyExecuting) {
- return;
- }
- @try {
- _currentlyExecuting = YES;
-
- for (NSUInteger i = 0; i < [_queue count]; ++i) {
- // Parse the returned JSON array.
- NSArray* commandBatch = [[_queue objectAtIndex:i] JSONObject];
-
- // Iterate over and execute all of the commands.
- for (NSArray* jsonEntry in commandBatch) {
- CDVInvokedUrlCommand* command = [CDVInvokedUrlCommand commandFromJson:jsonEntry];
- CDV_EXEC_LOG(@"Exec(%@): Calling %@.%@", command.callbackId, command.className, command.methodName);
-
- if (![self execute:command]) {
-#ifdef DEBUG
- NSString* commandJson = [jsonEntry JSONString];
- static NSUInteger maxLogLength = 1024;
- NSString* commandString = ([commandJson length] > maxLogLength) ?
- [NSString stringWithFormat:@"%@[...]", [commandJson substringToIndex:maxLogLength]] :
- commandJson;
-
- DLog(@"FAILED pluginJSON = %@", commandString);
-#endif
- }
- }
- }
-
- [_queue removeAllObjects];
- } @finally
- {
- _currentlyExecuting = NO;
- }
-}
-
-- (BOOL)execute:(CDVInvokedUrlCommand*)command
-{
- if ((command.className == nil) || (command.methodName == nil)) {
- NSLog(@"ERROR: Classname and/or methodName not found for command.");
- return NO;
- }
-
- // Fetch an instance of this class
- CDVPlugin* obj = [_viewController.commandDelegate getCommandInstance:command.className];
-
- if (!([obj isKindOfClass:[CDVPlugin class]])) {
- NSLog(@"ERROR: Plugin '%@' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.", command.className);
- return NO;
- }
- BOOL retVal = YES;
-
- // Find the proper selector to call.
- NSString* methodName = [NSString stringWithFormat:@"%@:", command.methodName];
- NSString* methodNameWithDict = [NSString stringWithFormat:@"%@:withDict:", command.methodName];
- SEL normalSelector = NSSelectorFromString(methodName);
- SEL legacySelector = NSSelectorFromString(methodNameWithDict);
- // Test for the legacy selector first in case they both exist.
- if ([obj respondsToSelector:legacySelector]) {
- NSMutableArray* arguments = nil;
- NSMutableDictionary* dict = nil;
- [command legacyArguments:&arguments andDict:&dict];
- // [obj performSelector:legacySelector withObject:arguments withObject:dict];
- objc_msgSend(obj, legacySelector, arguments, dict);
- } else if ([obj respondsToSelector:normalSelector]) {
- // [obj performSelector:normalSelector withObject:command];
- objc_msgSend(obj, normalSelector, command);
- } else {
- // There's no method to call, so throw an error.
- NSLog(@"ERROR: Method '%@' not defined in Plugin '%@'", methodName, command.className);
- retVal = NO;
- }
-
- return retVal;
-}
-
-@end
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVConfigParser.h
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVConfigParser.h b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVConfigParser.h
deleted file mode 100644
index 7392580..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVConfigParser.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-@interface CDVConfigParser : NSObject <NSXMLParserDelegate>{}
-
-@property (nonatomic, readonly, strong) NSMutableDictionary* pluginsDict;
-@property (nonatomic, readonly, strong) NSMutableDictionary* settings;
-@property (nonatomic, readonly, strong) NSMutableArray* whitelistHosts;
-@property (nonatomic, readonly, strong) NSMutableArray* startupPluginNames;
-@property (nonatomic, readonly, strong) NSString* startPage;
-
-@end
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVConfigParser.m
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVConfigParser.m b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVConfigParser.m
deleted file mode 100644
index ffc8ede..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVConfigParser.m
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#import "CDVConfigParser.h"
-
-@interface CDVConfigParser ()
-
-@property (nonatomic, readwrite, strong) NSMutableDictionary* pluginsDict;
-@property (nonatomic, readwrite, strong) NSMutableDictionary* settings;
-@property (nonatomic, readwrite, strong) NSMutableArray* whitelistHosts;
-@property (nonatomic, readwrite, strong) NSMutableArray* startupPluginNames;
-@property (nonatomic, readwrite, strong) NSString* startPage;
-
-@end
-
-@implementation CDVConfigParser
-
-@synthesize pluginsDict, settings, whitelistHosts, startPage, startupPluginNames;
-
-- (id)init
-{
- self = [super init];
- if (self != nil) {
- self.pluginsDict = [[NSMutableDictionary alloc] initWithCapacity:30];
- self.settings = [[NSMutableDictionary alloc] initWithCapacity:30];
- self.whitelistHosts = [[NSMutableArray alloc] initWithCapacity:30];
- self.startupPluginNames = [[NSMutableArray alloc] initWithCapacity:8];
- }
- return self;
-}
-
-- (void)parser:(NSXMLParser*)parser didStartElement:(NSString*)elementName namespaceURI:(NSString*)namespaceURI qualifiedName:(NSString*)qualifiedName attributes:(NSDictionary*)attributeDict
-{
- if ([elementName isEqualToString:@"preference"]) {
- settings[attributeDict[@"name"]] = attributeDict[@"value"];
- } else if ([elementName isEqualToString:@"plugin"]) {
- NSString* name = [attributeDict[@"name"] lowercaseString];
- pluginsDict[name] = attributeDict[@"value"];
- if ([@"true" isEqualToString : attributeDict[@"onload"]]) {
- [self.startupPluginNames addObject:name];
- }
- } else if ([elementName isEqualToString:@"access"]) {
- [whitelistHosts addObject:attributeDict[@"origin"]];
- } else if ([elementName isEqualToString:@"content"]) {
- self.startPage = attributeDict[@"src"];
- }
-}
-
-- (void)parser:(NSXMLParser*)parser parseErrorOccurred:(NSError*)parseError
-{
- NSAssert(NO, @"config.xml parse error line %d col %d", [parser lineNumber], [parser columnNumber]);
-}
-
-@end
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVConnection.h
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVConnection.h b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVConnection.h
deleted file mode 100644
index d3e8c5d..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVConnection.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#import <Foundation/Foundation.h>
-#import "CDVPlugin.h"
-#import "CDVReachability.h"
-
-@interface CDVConnection : CDVPlugin {
- NSString* type;
- NSString* _callbackId;
-
- CDVReachability* internetReach;
-}
-
-@property (copy) NSString* connectionType;
-@property (strong) CDVReachability* internetReach;
-
-@end
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVConnection.m
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVConnection.m b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVConnection.m
deleted file mode 100644
index b3f5cab..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVConnection.m
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#import "CDVConnection.h"
-#import "CDVReachability.h"
-
-@interface CDVConnection (PrivateMethods)
-- (void)updateOnlineStatus;
-- (void)sendPluginResult;
-@end
-
-@implementation CDVConnection
-
-@synthesize connectionType, internetReach;
-
-- (void)getConnectionInfo:(CDVInvokedUrlCommand*)command
-{
- _callbackId = command.callbackId;
- [self sendPluginResult];
-}
-
-- (void)sendPluginResult
-{
- CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:self.connectionType];
-
- [result setKeepCallbackAsBool:YES];
- [self.commandDelegate sendPluginResult:result callbackId:_callbackId];
-}
-
-- (NSString*)w3cConnectionTypeFor:(CDVReachability*)reachability
-{
- NetworkStatus networkStatus = [reachability currentReachabilityStatus];
-
- switch (networkStatus) {
- case NotReachable:
- return @"none";
-
- case ReachableViaWWAN:
- // Return value of '2g' is deprecated as of 2.6.0 and will be replaced with 'cellular' in 3.0.0
- return @"2g";
-
- case ReachableViaWiFi:
- return @"wifi";
-
- default:
- return @"unknown";
- }
-}
-
-- (BOOL)isCellularConnection:(NSString*)theConnectionType
-{
- return [theConnectionType isEqualToString:@"2g"] ||
- [theConnectionType isEqualToString:@"3g"] ||
- [theConnectionType isEqualToString:@"4g"] ||
- [theConnectionType isEqualToString:@"cellular"];
-}
-
-- (void)updateReachability:(CDVReachability*)reachability
-{
- if (reachability) {
- // check whether the connection type has changed
- NSString* newConnectionType = [self w3cConnectionTypeFor:reachability];
- if ([newConnectionType isEqualToString:self.connectionType]) { // the same as before, remove dupes
- return;
- } else {
- self.connectionType = [self w3cConnectionTypeFor:reachability];
- }
- }
- [self sendPluginResult];
-}
-
-- (void)updateConnectionType:(NSNotification*)note
-{
- CDVReachability* curReach = [note object];
-
- if ((curReach != nil) && [curReach isKindOfClass:[CDVReachability class]]) {
- [self updateReachability:curReach];
- }
-}
-
-- (void)onPause
-{
- [self.internetReach stopNotifier];
-}
-
-- (void)onResume
-{
- [self.internetReach startNotifier];
- [self updateReachability:self.internetReach];
-}
-
-- (CDVPlugin*)initWithWebView:(UIWebView*)theWebView
-{
- self = [super initWithWebView:theWebView];
- if (self) {
- self.connectionType = @"none";
- self.internetReach = [CDVReachability reachabilityForInternetConnection];
- self.connectionType = [self w3cConnectionTypeFor:self.internetReach];
- [self.internetReach startNotifier];
- [self printDeprecationNotice];
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateConnectionType:)
- name:kReachabilityChangedNotification object:nil];
- if (&UIApplicationDidEnterBackgroundNotification && &UIApplicationWillEnterForegroundNotification) {
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onPause) name:UIApplicationDidEnterBackgroundNotification object:nil];
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onResume) name:UIApplicationWillEnterForegroundNotification object:nil];
- }
- }
- return self;
-}
-
-- (void)printDeprecationNotice
-{
- NSLog(@"DEPRECATION NOTICE: The Connection ReachableViaWWAN return value of '2g' is deprecated as of Cordova version 2.6.0 and will be changed to 'cellular' in a future release. ");
-}
-
-@end
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVContact.h
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVContact.h b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVContact.h
deleted file mode 100644
index 5187efc..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVContact.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#import <Foundation/Foundation.h>
-#import <AddressBook/ABAddressBook.h>
-#import <AddressBookUI/AddressBookUI.h>
-
-enum CDVContactError {
- UNKNOWN_ERROR = 0,
- INVALID_ARGUMENT_ERROR = 1,
- TIMEOUT_ERROR = 2,
- PENDING_OPERATION_ERROR = 3,
- IO_ERROR = 4,
- NOT_SUPPORTED_ERROR = 5,
- PERMISSION_DENIED_ERROR = 20
-};
-typedef NSUInteger CDVContactError;
-
-@interface CDVContact : NSObject {
- ABRecordRef record; // the ABRecord associated with this contact
- NSDictionary* returnFields; // dictionary of fields to return when performing search
-}
-
-@property (nonatomic, assign) ABRecordRef record;
-@property (nonatomic, strong) NSDictionary* returnFields;
-
-+ (NSDictionary*)defaultABtoW3C;
-+ (NSDictionary*)defaultW3CtoAB;
-+ (NSSet*)defaultW3CtoNull;
-+ (NSDictionary*)defaultObjectAndProperties;
-+ (NSDictionary*)defaultFields;
-
-+ (NSDictionary*)calcReturnFields:(NSArray*)fields;
-- (id)init;
-- (id)initFromABRecord:(ABRecordRef)aRecord;
-- (bool)setFromContactDict:(NSDictionary*)aContact asUpdate:(BOOL)bUpdate;
-
-+ (BOOL)needsConversion:(NSString*)W3Label;
-+ (CFStringRef)convertContactTypeToPropertyLabel:(NSString*)label;
-+ (NSString*)convertPropertyLabelToContactType:(NSString*)label;
-+ (BOOL)isValidW3ContactType:(NSString*)label;
-- (bool)setValue:(id)aValue forProperty:(ABPropertyID)aProperty inRecord:(ABRecordRef)aRecord asUpdate:(BOOL)bUpdate;
-
-- (NSDictionary*)toDictionary:(NSDictionary*)withFields;
-- (NSNumber*)getDateAsNumber:(ABPropertyID)datePropId;
-- (NSObject*)extractName;
-- (NSObject*)extractMultiValue:(NSString*)propertyId;
-- (NSObject*)extractAddresses;
-- (NSObject*)extractIms;
-- (NSObject*)extractOrganizations;
-- (NSObject*)extractPhotos;
-
-- (NSMutableDictionary*)translateW3Dict:(NSDictionary*)dict forProperty:(ABPropertyID)prop;
-- (bool)setMultiValueStrings:(NSArray*)fieldArray forProperty:(ABPropertyID)prop inRecord:(ABRecordRef)person asUpdate:(BOOL)bUpdate;
-- (bool)setMultiValueDictionary:(NSArray*)array forProperty:(ABPropertyID)prop inRecord:(ABRecordRef)person asUpdate:(BOOL)bUpdate;
-- (ABMultiValueRef)allocStringMultiValueFromArray:array;
-- (ABMultiValueRef)allocDictMultiValueFromArray:array forProperty:(ABPropertyID)prop;
-- (BOOL)foundValue:(NSString*)testValue inFields:(NSDictionary*)searchFields;
-- (BOOL)testStringValue:(NSString*)testValue forW3CProperty:(NSString*)property;
-- (BOOL)testDateValue:(NSString*)testValue forW3CProperty:(NSString*)property;
-- (BOOL)searchContactFields:(NSArray*)fields forMVStringProperty:(ABPropertyID)propId withValue:testValue;
-- (BOOL)testMultiValueStrings:(NSString*)testValue forProperty:(ABPropertyID)propId ofType:(NSString*)type;
-- (NSArray*)valuesForProperty:(ABPropertyID)propId inRecord:(ABRecordRef)aRecord;
-- (NSArray*)labelsForProperty:(ABPropertyID)propId inRecord:(ABRecordRef)aRecord;
-- (BOOL)searchContactFields:(NSArray*)fields forMVDictionaryProperty:(ABPropertyID)propId withValue:(NSString*)testValue;
-
-@end
-
-// generic ContactField types
-#define kW3ContactFieldType @"type"
-#define kW3ContactFieldValue @"value"
-#define kW3ContactFieldPrimary @"pref"
-// Various labels for ContactField types
-#define kW3ContactWorkLabel @"work"
-#define kW3ContactHomeLabel @"home"
-#define kW3ContactOtherLabel @"other"
-#define kW3ContactPhoneFaxLabel @"fax"
-#define kW3ContactPhoneMobileLabel @"mobile"
-#define kW3ContactPhonePagerLabel @"pager"
-#define kW3ContactUrlBlog @"blog"
-#define kW3ContactUrlProfile @"profile"
-#define kW3ContactImAIMLabel @"aim"
-#define kW3ContactImICQLabel @"icq"
-#define kW3ContactImMSNLabel @"msn"
-#define kW3ContactImYahooLabel @"yahoo"
-#define kW3ContactFieldId @"id"
-// special translation for IM field value and type
-#define kW3ContactImType @"type"
-#define kW3ContactImValue @"value"
-
-// Contact object
-#define kW3ContactId @"id"
-#define kW3ContactName @"name"
-#define kW3ContactFormattedName @"formatted"
-#define kW3ContactGivenName @"givenName"
-#define kW3ContactFamilyName @"familyName"
-#define kW3ContactMiddleName @"middleName"
-#define kW3ContactHonorificPrefix @"honorificPrefix"
-#define kW3ContactHonorificSuffix @"honorificSuffix"
-#define kW3ContactDisplayName @"displayName"
-#define kW3ContactNickname @"nickname"
-#define kW3ContactPhoneNumbers @"phoneNumbers"
-#define kW3ContactAddresses @"addresses"
-#define kW3ContactAddressFormatted @"formatted"
-#define kW3ContactStreetAddress @"streetAddress"
-#define kW3ContactLocality @"locality"
-#define kW3ContactRegion @"region"
-#define kW3ContactPostalCode @"postalCode"
-#define kW3ContactCountry @"country"
-#define kW3ContactEmails @"emails"
-#define kW3ContactIms @"ims"
-#define kW3ContactOrganizations @"organizations"
-#define kW3ContactOrganizationName @"name"
-#define kW3ContactTitle @"title"
-#define kW3ContactDepartment @"department"
-#define kW3ContactBirthday @"birthday"
-#define kW3ContactNote @"note"
-#define kW3ContactPhotos @"photos"
-#define kW3ContactCategories @"categories"
-#define kW3ContactUrls @"urls"