diff options
Diffstat (limited to 'iphone/FixMyStreet/Classes/FixMyStreetAppDelegate.m')
-rw-r--r-- | iphone/FixMyStreet/Classes/FixMyStreetAppDelegate.m | 90 |
1 files changed, 86 insertions, 4 deletions
diff --git a/iphone/FixMyStreet/Classes/FixMyStreetAppDelegate.m b/iphone/FixMyStreet/Classes/FixMyStreetAppDelegate.m index 081591ebf..326692568 100644 --- a/iphone/FixMyStreet/Classes/FixMyStreetAppDelegate.m +++ b/iphone/FixMyStreet/Classes/FixMyStreetAppDelegate.m @@ -11,20 +11,22 @@ @implementation FixMyStreetAppDelegate -@synthesize window, navigationController; -@synthesize image, location, subject; +@synthesize window, navigationController; //, viewController; +@synthesize image, location, subject, name, email, phone; - (void)applicationDidFinishLaunching:(UIApplication *)application { InputTableViewController *inputTableViewController = [[InputTableViewController alloc] initWithNibName:@"MainViewController" bundle:[NSBundle mainBundle]]; // InputTableViewController *inputTableViewController = [[InputTableViewController alloc] initWithStyle:UITableViewStyleGrouped]; + //RootViewController *rootViewController = [[RootViewController alloc] i // So we had our root view in a nib file, but we're creating our navigation controller programmatically. Ah well. UINavigationController *aNavigationController = [[UINavigationController alloc] initWithRootViewController:inputTableViewController]; +// UINavigationController *aNavigationController = [[UINavigationController alloc] initWithRootViewController:viewController]; self.navigationController = aNavigationController; [aNavigationController release]; [inputTableViewController release]; +// [rootViewController release]; - UIView *controllersView = [navigationController view]; - [window addSubview:controllersView]; + [window addSubview:[navigationController view]]; [window makeKeyAndVisible]; // Need to fetch defaults here, plus anything saved when we quit last time @@ -33,6 +35,7 @@ - (void)dealloc { [window release]; [navigationController release]; +// [viewController release]; [super dealloc]; } @@ -43,6 +46,85 @@ // Report stuff -(void)uploadReport { + // Not yet working - do something spinny here + // UIActivityIndicatorView *spinny = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; + // [spinny startAnimating]; + // [spinny release]; + + // Get the phone's unique ID + UIDevice *dev = [UIDevice currentDevice]; + NSString *uniqueId = dev.uniqueIdentifier; + + NSString *urlString = @"http://matthew.fixmystreet.com/import"; + NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; + [request setURL:[NSURL URLWithString: urlString]]; + [request setHTTPMethod: @"POST"]; + + NSString *stringBoundary = @"0xMyLovelyBoundary"; + NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",stringBoundary]; + [request addValue:contentType forHTTPHeaderField: @"Content-Type"]; + + //setting up the body: + NSMutableData *postBody = [NSMutableData data]; + + [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",stringBoundary] dataUsingEncoding:NSASCIIStringEncoding]]; + [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"service\"\r\n\r\n"] dataUsingEncoding:NSASCIIStringEncoding]]; + [postBody appendData:[@"iPhone" dataUsingEncoding:NSASCIIStringEncoding]]; + + [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",stringBoundary] dataUsingEncoding:NSASCIIStringEncoding]]; + [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"phone_id\"\r\n\r\n"] dataUsingEncoding:NSASCIIStringEncoding]]; + [postBody appendData:[uniqueId dataUsingEncoding:NSASCIIStringEncoding]]; + + [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",stringBoundary] dataUsingEncoding:NSASCIIStringEncoding]]; + [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"subject\"\r\n\r\n"] dataUsingEncoding:NSASCIIStringEncoding]]; + [postBody appendData:[subject dataUsingEncoding:NSASCIIStringEncoding]]; + + [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",stringBoundary] dataUsingEncoding:NSASCIIStringEncoding]]; + [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"name\"\r\n\r\n"] dataUsingEncoding:NSASCIIStringEncoding]]; + [postBody appendData:[name dataUsingEncoding:NSASCIIStringEncoding]]; + + [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",stringBoundary] dataUsingEncoding:NSASCIIStringEncoding]]; + [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"email\"\r\n\r\n"] dataUsingEncoding:NSASCIIStringEncoding]]; + [postBody appendData:[email dataUsingEncoding:NSASCIIStringEncoding]]; + + [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",stringBoundary] dataUsingEncoding:NSASCIIStringEncoding]]; + [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"phone\"\r\n\r\n"] dataUsingEncoding:NSASCIIStringEncoding]]; + [postBody appendData:[phone dataUsingEncoding:NSASCIIStringEncoding]]; + + if (location) { + NSString* latitude = [NSString stringWithFormat:@"%f", location.coordinate.latitude]; + NSString* longitude = [NSString stringWithFormat:@"%f", location.coordinate.longitude]; + [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",stringBoundary] dataUsingEncoding:NSASCIIStringEncoding]]; + [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"lat\"\r\n\r\n"] dataUsingEncoding:NSASCIIStringEncoding]]; + [postBody appendData:[latitude dataUsingEncoding:NSASCIIStringEncoding]]; + + [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",stringBoundary] dataUsingEncoding:NSASCIIStringEncoding]]; + [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"lon\"\r\n\r\n"] dataUsingEncoding:NSASCIIStringEncoding]]; + [postBody appendData:[longitude dataUsingEncoding:NSASCIIStringEncoding]]; + } + + if (image) { + NSData *imageData = UIImageJPEGRepresentation(image, 0.8); + [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",stringBoundary] dataUsingEncoding:NSASCIIStringEncoding]]; + [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"photo\"; filename=\"from_phone.jpeg\"\r\n"] dataUsingEncoding:NSASCIIStringEncoding]]; + [postBody appendData:[[NSString stringWithString:@"Content-Type: image/jpeg\r\n"] dataUsingEncoding:NSASCIIStringEncoding]]; + [postBody appendData:[[NSString stringWithString:@"Content-Transfer-Encoding: binary\r\n\r\n"] dataUsingEncoding:NSASCIIStringEncoding]]; + [postBody appendData:imageData]; + } + + [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",stringBoundary] dataUsingEncoding:NSASCIIStringEncoding]]; + + [request setHTTPBody: postBody]; + + NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; + NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSASCIIStringEncoding]; + + // For now, just pop up alert box with return data + UIAlertView *v = [[UIAlertView alloc] initWithTitle:@"Return" message:returnString delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; + [v show]; + [v release]; +// NSLog(@"Returned string is: %s", returnString); + } @end |