diff --git a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/UserInterfaceState.xcuserstate b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/UserInterfaceState.xcuserstate index eaa9f3a..606fe83 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 bda5725..19781a5 100644 --- a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -280,7 +280,7 @@ moduleName = "Vendoo" usesParentBreakpointCondition = "Yes" urlString = "file:///Users/okechi/Documents/iOs%20Practice/Vendoo/Vendoo_bb/Vendoo/Vendoo/ExternalWebViewController.swift" - timestampString = "504915510.522741" + timestampString = "505105059.906101" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" startingLineNumber = "32" @@ -295,7 +295,7 @@ moduleName = "Vendoo" usesParentBreakpointCondition = "Yes" urlString = "file:///Users/okechi/Documents/iOs%20Practice/Vendoo/Vendoo_bb/Vendoo/Vendoo/ExternalWebViewController.swift" - timestampString = "504915510.522902" + timestampString = "505105059.906318" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" startingLineNumber = "32" @@ -310,7 +310,7 @@ moduleName = "Vendoo" usesParentBreakpointCondition = "Yes" urlString = "file:///Users/okechi/Documents/iOs%20Practice/Vendoo/Vendoo_bb/Vendoo/Vendoo/ExternalWebViewController.swift" - timestampString = "504915510.523053" + timestampString = "505105059.906451" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" startingLineNumber = "32" @@ -325,7 +325,7 @@ moduleName = "Vendoo" usesParentBreakpointCondition = "Yes" urlString = "file:///Users/okechi/Documents/iOs%20Practice/Vendoo/Vendoo_bb/Vendoo/Vendoo/ExternalWebViewController.swift" - timestampString = "504915510.523207" + timestampString = "505105059.906581" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" startingLineNumber = "32" @@ -399,5 +399,149 @@ landmarkType = "5"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Vendoo/HomeViewController.swift b/Vendoo/HomeViewController.swift index 8c0ab74..32619c3 100644 --- a/Vendoo/HomeViewController.swift +++ b/Vendoo/HomeViewController.swift @@ -190,7 +190,10 @@ class HomeViewController: UITabBarController { //once all listings have been retrieved and processed start retrieving possible notifications if(notificationStartTracker == listingDict?.count){ - NSNotificationCenter.defaultCenter().postNotificationName("finished_fetching_listings", object: nil) + self.userListings.sortInPlace({$0.title > $1.title}) + self.endedListings.sortInPlace({$0.title > $1.title}) + self.soldListings.sortInPlace({$0.title > $1.title}) + NSNotificationCenter.defaultCenter().postNotificationName("finished_fetching_listings", object: nil) self.notificationsManager.setListings(self.userListings) self.notificationsManager.startServicePolling() diff --git a/Vendoo/ItemImagePickerViewController.swift b/Vendoo/ItemImagePickerViewController.swift index 4e920ee..59f712b 100644 --- a/Vendoo/ItemImagePickerViewController.swift +++ b/Vendoo/ItemImagePickerViewController.swift @@ -47,6 +47,10 @@ class ItemImagePickerViewController: UIViewController { private var imageIndex: Int! private var isEditing: Bool = false private var currentInformation: Dictionary! + var loadingView: UIView! + private var firManager: FirebaseManager! = nil + + override func viewDidLoad() { @@ -69,12 +73,24 @@ class ItemImagePickerViewController: UIViewController { let tapGestureMain = UITapGestureRecognizer(target: self, action: #selector(ItemImagePickerViewController.takePicture)) self.view.addGestureRecognizer(tapGestureMain) - - //self.possibleItemImageMain.addGestureRecognizer(tapGestureMain) - //self.possibleItemImage2.addGestureRecognizer(tapGesture2) - //self.possibleItemImage3.addGestureRecognizer(tapGesture) - //self.possibleItemImage4.addGestureRecognizer(tapGesture) - //self.possibleItemImage5.addGestureRecognizer(tapGesture) + //hide all images and labels for picture slots 2 - 5 + self.possibleItemImage2.hidden = true + self.possibleItemImage3.hidden = true + self.possibleItemImage4.hidden = true + self.possibleItemImage5.hidden = true + self.possibleItemImage2.userInteractionEnabled = false + self.possibleItemImage3.userInteractionEnabled = false + self.possibleItemImage4.userInteractionEnabled = false + self.possibleItemImage5.userInteractionEnabled = false + self.plus_label0.hidden = false + self.plus_label1.hidden = true + self.plus_label2.hidden = true + self.plus_label3.hidden = true + self.plus_label4.hidden = true + self.plus_label1.userInteractionEnabled = false + self.plus_label2.userInteractionEnabled = false + self.plus_label3.userInteractionEnabled = false + self.plus_label4.userInteractionEnabled = false } @@ -88,6 +104,7 @@ class ItemImagePickerViewController: UIViewController { override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) + self.firManager = (self.tabBarController as! HomeViewController).firebaseManager self.tabBarController?.tabBar.hidden = true } @@ -206,15 +223,36 @@ extension ItemImagePickerViewController: UIImagePickerControllerDelegate, UINavi switch(self.imageIndex){ case 0: self.plus_label0.hidden = true + + //show slot 2 + self.possibleItemImage2.hidden = false + self.possibleItemImage2.userInteractionEnabled = true + self.plus_label1.hidden = false + self.plus_label1.userInteractionEnabled = true break case 1: self.plus_label1.hidden = true + //show slot 3 + self.possibleItemImage3.hidden = false + self.possibleItemImage3.userInteractionEnabled = true + self.plus_label2.hidden = false + self.plus_label2.userInteractionEnabled = true break case 2: self.plus_label2.hidden = true + //show slot 4 + self.possibleItemImage4.hidden = false + self.possibleItemImage4.userInteractionEnabled = true + self.plus_label3.hidden = false + self.plus_label3.userInteractionEnabled = true break case 3: self.plus_label3.hidden = true + //show slot 5 + self.possibleItemImage5.hidden = false + self.possibleItemImage5.userInteractionEnabled = true + self.plus_label4.hidden = false + self.plus_label4.userInteractionEnabled = true break case 4: self.plus_label4.hidden = true @@ -247,7 +285,7 @@ extension ItemImagePickerViewController: UIImagePickerControllerDelegate, UINavi if(self.itemImagesSelections[0]) { self.imageIndex = 1 accessCam() - } else { + } else if (!self.possibleItemImage2.hidden){ 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)})) @@ -260,7 +298,7 @@ extension ItemImagePickerViewController: UIImagePickerControllerDelegate, UINavi if(self.itemImagesSelections[0] && self.itemImagesSelections[1]) { self.imageIndex = 2 accessCam() - } else { + } else if (!self.possibleItemImage3.hidden){ 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)})) @@ -273,7 +311,7 @@ extension ItemImagePickerViewController: UIImagePickerControllerDelegate, UINavi && self.itemImagesSelections[2]) { self.imageIndex = 3 accessCam() - } else { + } else if (!self.possibleItemImage4.hidden){ 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)})) @@ -286,7 +324,7 @@ extension ItemImagePickerViewController: UIImagePickerControllerDelegate, UINavi && self.itemImagesSelections[2] && self.itemImagesSelections[3]) { self.imageIndex = 4 accessCam() - } else { + } else if (!self.possibleItemImage5.hidden){ 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)})) @@ -409,6 +447,15 @@ extension ItemImagePickerViewController { } @IBAction func draftItem(sender: AnyObject) { + self.loadingView = UIView(frame: self.view.frame) + self.loadingView.backgroundColor = UIColor.grayColor() + self.loadingView.alpha = 0.4 + + self.firManager.indicator.center = self.view.center + + self.loadingView.addSubview(self.firManager.indicator) + self.view.addSubview(loadingView) + self.firManager.indicator.startAnimating() if(self.possibleItemImageMain.image == nil){ 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) @@ -488,6 +535,9 @@ extension ItemImagePickerViewController { {(metadata, error) -> Void in newListingRef!.setValue(listing as? Dictionary) + self.firManager.indicator.stopAnimating() + self.loadingView.removeFromSuperview() + self.loadingView = nil 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: { @@ -506,7 +556,7 @@ extension ItemImagePickerViewController { } @IBAction func cancelNewListing(sender: AnyObject) { - //@FIXME: nil out all data user may have entered so that when they reopen new listing page it initialized to a fresh screen. + //nil out all data user may have entered so that when they reopen new listing page it initialized to a fresh screen. if(!self.isEditing) { self.tabBarController?.selectedIndex = 0 @@ -521,16 +571,29 @@ extension ItemImagePickerViewController { self.possibleItemImage3.image = nil self.possibleItemImage4.image = nil self.possibleItemImage5.image = nil + self.possibleItemImage2.hidden = true + self.possibleItemImage3.hidden = true + self.possibleItemImage4.hidden = true + self.possibleItemImage5.hidden = true + self.possibleItemImage2.userInteractionEnabled = false + self.possibleItemImage3.userInteractionEnabled = false + self.possibleItemImage4.userInteractionEnabled = false + self.possibleItemImage5.userInteractionEnabled = false self.itemImagesSelections[0] = false self.itemImagesSelections[1] = false self.itemImagesSelections[2] = false self.itemImagesSelections[3] = false self.itemImagesSelections[4] = false self.plus_label0.hidden = false - self.plus_label1.hidden = false - self.plus_label2.hidden = false - self.plus_label3.hidden = false - self.plus_label4.hidden = false + self.plus_label1.hidden = true + self.plus_label2.hidden = true + self.plus_label3.hidden = true + self.plus_label4.hidden = true + self.plus_label1.userInteractionEnabled = false + self.plus_label2.userInteractionEnabled = false + self.plus_label3.userInteractionEnabled = false + self.plus_label4.userInteractionEnabled = false + }else{ self.presentingViewController?.dismissViewControllerAnimated(true, completion: nil) diff --git a/Vendoo/Main.storyboard b/Vendoo/Main.storyboard index ab1395e..5b3641c 100755 --- a/Vendoo/Main.storyboard +++ b/Vendoo/Main.storyboard @@ -1295,6 +1295,7 @@