diff --git a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/UserInterfaceState.xcuserstate b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/UserInterfaceState.xcuserstate index f7d4c09..3dbd4f9 100644 Binary files a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/UserInterfaceState.xcuserstate and b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index 880e042..b1ef58d 100644 --- a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -10,12 +10,12 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Vendoo/ItemImagePickerViewController.swift" - timestampString = "487758106.283634" + timestampString = "487821260.588406" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "125" - endingLineNumber = "125" - landmarkName = "takePicture()" + startingLineNumber = "379" + endingLineNumber = "379" + landmarkName = "draftItem(_:)" landmarkType = "5"> @@ -26,12 +26,12 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Vendoo/ItemImagePickerViewController.swift" - timestampString = "487758106.283634" + timestampString = "487821264.116041" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "58" - endingLineNumber = "58" - landmarkName = "viewDidLoad()" + startingLineNumber = "388" + endingLineNumber = "388" + landmarkName = "draftItem(_:)" landmarkType = "5"> @@ -41,13 +41,157 @@ shouldBeEnabled = "Yes" ignoreCount = "0" continueAfterRunningActions = "No" - filePath = "Vendoo/ListingPreviewViewController.swift" - timestampString = "487757808.448492" + filePath = "Vendoo/ItemImagePickerViewController.swift" + timestampString = "487821268.676583" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "210" - endingLineNumber = "210" - landmarkName = "editListing(_:)" + startingLineNumber = "397" + endingLineNumber = "397" + landmarkName = "draftItem(_:)" + landmarkType = "5"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Vendoo/HomeViewController.swift b/Vendoo/HomeViewController.swift index d801892..b5a6530 100644 --- a/Vendoo/HomeViewController.swift +++ b/Vendoo/HomeViewController.swift @@ -39,6 +39,8 @@ class HomeViewController: UITabBarController { let storageRef = self.firebaseManager.storage.referenceForURL((databaseDict["image_storage"] as? String)!) let listingImage = storageRef.child("images/\(keys).jpg") + + //@TODO: add in logic to programmatically retrieve each stored image and store in listing object as a way to display each image listingImage.dataWithMaxSize(10 * 1024 * 1024, completion: { (data, error) -> Void in diff --git a/Vendoo/ItemImagePickerViewController.swift b/Vendoo/ItemImagePickerViewController.swift index 7ecc837..66ea7d2 100644 --- a/Vendoo/ItemImagePickerViewController.swift +++ b/Vendoo/ItemImagePickerViewController.swift @@ -35,7 +35,8 @@ class ItemImagePickerViewController: UIViewController { var itemImages:[UIImageView]! var itemImagesSelections = [false,false,false,false,false] private var picker = UIImagePickerController() - + private var currImageSelected: UIImageView! + private var currUILabel: UILabel! override func viewDidLoad() { super.viewDidLoad() @@ -56,8 +57,9 @@ class ItemImagePickerViewController: UIViewController { let tapGestureMain = UITapGestureRecognizer(target: self, action: #selector(ItemImagePickerViewController.takePicture)) let tapGesture2 = UITapGestureRecognizer(target: self, action: #selector(ItemImagePickerViewController.takePicture)) //tapGesture.cancelsTouchesInView = true - self.possibleItemImageMain.addGestureRecognizer(tapGestureMain) - self.possibleItemImage2.addGestureRecognizer(tapGesture2) + self.view.addGestureRecognizer(tapGestureMain) + //self.possibleItemImageMain.addGestureRecognizer(tapGestureMain) + //self.possibleItemImage2.addGestureRecognizer(tapGesture2) //self.possibleItemImage3.addGestureRecognizer(tapGesture) //self.possibleItemImage4.addGestureRecognizer(tapGesture) //self.possibleItemImage5.addGestureRecognizer(tapGesture) @@ -112,7 +114,11 @@ extension ItemImagePickerViewController: UIImagePickerControllerDelegate, UINavi func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) { - self.possibleItemImageMain.image = image + if (self.possibleItemImageMain.image != nil && self.currUILabel != nil ){ + self.currUILabel.hidden = true + } + self.currImageSelected.image = image + dismissViewControllerAnimated(true, completion: nil) } @@ -122,7 +128,93 @@ extension ItemImagePickerViewController: UIImagePickerControllerDelegate, UINavi } - func takePicture(){ + func takePicture(sender: UITapGestureRecognizer ){ + let location: CGPoint = sender.locationInView(self.view) + + if(sender.state == UIGestureRecognizerState.Ended) { + var viewsWereSaved = [false, false] + for view in self.view.subviews { + if (view.isKindOfClass(UIImageView) && CGRectContainsPoint(view.frame, location)) { + self.currImageSelected = view as! UIImageView + switch (view.tag) { + case 1: + if(self.itemImagesSelections[0]) { + self.itemImagesSelections[1] = true + viewsWereSaved[0] = true + } else { + let alert = UIAlertController(title: "Main Image Needed", message: "You must have a main image before saving supporting images.", preferredStyle: .Alert) + alert.addAction(UIAlertAction(title: "OK", style: .Default, handler:{(action: UIAlertAction!) in alert.dismissViewControllerAnimated(true, completion: nil)})) + + self.presentViewController(alert, animated: true, completion: nil) + + } + break + + case 2: + if(self.itemImagesSelections[0] && self.itemImagesSelections[1]) { + self.itemImagesSelections[2] = true + viewsWereSaved[0] = true + } else { + let alert = UIAlertController(title: "Support Image 1 Missing", message: "You must save your first supporting image before saving more.", preferredStyle: .Alert) + alert.addAction(UIAlertAction(title: "OK", style: .Default, handler:{(action: UIAlertAction!) in alert.dismissViewControllerAnimated(true, completion: nil)})) + + self.presentViewController(alert, animated: true, completion: nil) + + } + break + case 3: + if(self.itemImagesSelections[0] && self.itemImagesSelections[1] + && self.itemImagesSelections[2]) { + self.itemImagesSelections[3] = true + viewsWereSaved[0] = true + } else { + let alert = UIAlertController(title: "Support Image 2 Missing", message: "You must save your first two supporting images before saving more.", preferredStyle: .Alert) + alert.addAction(UIAlertAction(title: "OK", style: .Default, handler:{(action: UIAlertAction!) in alert.dismissViewControllerAnimated(true, completion: nil)})) + + self.presentViewController(alert, animated: true, completion: nil) + + } + break + case 4: + if(self.itemImagesSelections[0] && self.itemImagesSelections[1] + && self.itemImagesSelections[2] && self.itemImagesSelections[3]) { + self.itemImagesSelections[4] = true + viewsWereSaved[0] = true + } else { + let alert = UIAlertController(title: "Support Image 3 Missing", message: "You must save your first three supporting images before saving more.", preferredStyle: .Alert) + alert.addAction(UIAlertAction(title: "OK", style: .Default, handler:{(action: UIAlertAction!) in alert.dismissViewControllerAnimated(true, completion: nil)})) + + self.presentViewController(alert, animated: true, completion: nil) + + } + break + default: + self.itemImagesSelections[0] = true + break + } + + } + if (view.isKindOfClass(UILabel) && CGRectContainsPoint(view.frame, location)) { + self.currUILabel = view as! UILabel + viewsWereSaved[1] = true + } + } + /* + for (UIView *view in self.view.subviews) + { + if ([view isKindOfClass:[UIImageView class]] && CGRectContainsPoint(view.frame, location)) + { + UIImageView *image = (UIImageView *) view; + + // ok, now you know which image you received your long press for + // do whatever you wanted on it at this point + + return; + } + } + */ + } + let captureMenu = UIAlertController(title: nil, message:nil, preferredStyle: .ActionSheet) let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel, handler: { @@ -153,6 +245,7 @@ extension ItemImagePickerViewController: UIImagePickerControllerDelegate, UINavi } + //MARK: - UIPickerViewDelegate extension ItemImagePickerViewController: UIPickerViewDelegate { @@ -252,7 +345,7 @@ extension ItemImagePickerViewController { @IBAction func draftItem(sender: AnyObject) { if(self.possibleItemImageMain.image == nil){ - let alert = UIAlertController(title: "Image Needed", message: "To proceed to save your listing as a draft, you must supply at least one picture for your listing", preferredStyle: .Alert) + let alert = UIAlertController(title: "Main Image Needed", message: "To proceed to save your listing as a draft, you must supply at least one picture for your listing.", preferredStyle: .Alert) alert.addAction(UIAlertAction(title: "OK", style: .Default, handler:{(action: UIAlertAction!) in alert.dismissViewControllerAnimated(true, completion: nil)})) self.presentViewController(alert, animated: true, completion: nil) @@ -262,13 +355,21 @@ extension ItemImagePickerViewController { let newListingRef = (self.tabBarController as? HomeViewController)?.firebaseManager.ref.child("Users").child("\(((self.tabBarController as? HomeViewController)?.firebaseManager.user_email)!)").child("user_Listings").childByAutoId() let category = (self.pickerData[self.categoryPicker.selectedRowInComponent(0)]) - + var counter = -1 + for bool in self.itemImagesSelections { + if bool { + counter += 1 + }else { + break + } + } let listing: Dictionary = ["listingID": newListingRef!.key, "seller email": (NSUserDefaults.standardUserDefaults().objectForKey("email") as? String)!, "listingTitle": self.itemName.text, "listingPrice": self.itemPrice.text, "listingCategory": category, "listingDescription": self.itemDescription.text, + "numberOfSupportingImages" : counter, "isListingDraft": true, "networks": ["areNetworksChosen": false]] @@ -278,24 +379,60 @@ extension ItemImagePickerViewController { let storageRef = (self.tabBarController as? HomeViewController)?.firebaseManager.storage.referenceForURL((databaseDict["image_storage"] as? String)!) - let listingImageRef = storageRef!.child("images/\(newListingRef!.key)"+".jpg") + //check each imageview to see if there is an image to upload + if(self.possibleItemImage2.image != nil){ + let listingImageRef = storageRef!.child("images/\(newListingRef!.key)"+"/2.jpg") + + listingImageRef.putData(UIImageJPEGRepresentation(self.possibleItemImage2.image!, 0.8)!, metadata: nil,completion: + {(metadata, error) -> Void in + print(metadata) + }) + } - listingImageRef.putData(UIImageJPEGRepresentation(self.possibleItemImageMain.image!, 0.8)!, metadata: nil,completion: - {(metadata, error) -> Void in - - newListingRef!.setValue(listing as? Dictionary) - let alert = UIAlertController(title: "Item Saved", message: "Your listing has been saved by a draft", preferredStyle: .Alert) - - alert.addAction(UIAlertAction(title: "OK", style: .Default, handler:{(action: UIAlertAction!) in alert.dismissViewControllerAnimated(true, completion: { + if(self.possibleItemImage3.image != nil){ + let listingImageRef = storageRef!.child("images/\(newListingRef!.key)"+"/3.jpg") + + listingImageRef.putData(UIImageJPEGRepresentation(self.possibleItemImage3.image!, 0.8)!, metadata: nil,completion: + {(metadata, error) -> Void in + print(metadata) + }) + } + + if(self.possibleItemImage4.image != nil){ + let listingImageRef = storageRef!.child("images/\(newListingRef!.key)"+"/4.jpg") + + listingImageRef.putData(UIImageJPEGRepresentation(self.possibleItemImage4.image!, 0.8)!, metadata: nil,completion: + {(metadata, error) -> Void in - self.dismissViewControllerAnimated(true, completion: nil) - })})) - - self.presentViewController(alert, animated: true, completion: nil) - }) - + }) + } + if(self.possibleItemImage5.image != nil){ + let listingImageRef = storageRef!.child("images/\(newListingRef!.key)"+"/5.jpg") + + listingImageRef.putData(UIImageJPEGRepresentation(self.possibleItemImage5.image!, 0.8)!, metadata: nil,completion: + {(metadata, error) -> Void in + + }) + } + if(self.possibleItemImageMain.image != nil){ + let listingImageRef = storageRef!.child("images/\(newListingRef!.key)"+"/main.jpg") + + listingImageRef.putData(UIImageJPEGRepresentation(self.possibleItemImageMain.image!, 0.8)!, metadata: nil,completion: + {(metadata, error) -> Void in + + newListingRef!.setValue(listing as? Dictionary) + let alert = UIAlertController(title: "Item Saved", message: "Your listing has been saved by a draft", preferredStyle: .Alert) + + alert.addAction(UIAlertAction(title: "OK", style: .Default, handler:{(action: UIAlertAction!) in alert.dismissViewControllerAnimated(true, completion: { + + self.dismissViewControllerAnimated(true, completion: nil) + })})) + + self.presentViewController(alert, animated: true, completion: nil) + }) + } }) } diff --git a/Vendoo/Main.storyboard b/Vendoo/Main.storyboard index a4d984c..a56f74f 100644 --- a/Vendoo/Main.storyboard +++ b/Vendoo/Main.storyboard @@ -252,52 +252,57 @@ + + + + + - + - + - + - + - - + + + + + - + - - + + + + + - + - - + + + + + - + @@ -358,13 +363,13 @@ - + + + + @@ -1534,6 +1539,19 @@ + + + + + + + + + + + + + diff --git a/Vendoo/Vendoo-Bridging-Header.h b/Vendoo/Vendoo-Bridging-Header.h index 543889d..1182cde 100644 --- a/Vendoo/Vendoo-Bridging-Header.h +++ b/Vendoo/Vendoo-Bridging-Header.h @@ -12,7 +12,7 @@ -#import "EBayTradingServiceClient.h" +//#import "EBayTradingServiceClient.h" #endif /* Vendoo_Bridging_Header_h */ \ No newline at end of file