aboutsummaryrefslogtreecommitdiffstats
path: root/iphone/FixMyStreet/Classes/FixMyStreetAppDelegate.m
diff options
context:
space:
mode:
Diffstat (limited to 'iphone/FixMyStreet/Classes/FixMyStreetAppDelegate.m')
-rw-r--r--iphone/FixMyStreet/Classes/FixMyStreetAppDelegate.m90
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