From a0e8b382b242d7f91143b3bc390d6b2bec886d3f Mon Sep 17 00:00:00 2001 From: Okechi Onyeje Date: Sun, 29 May 2016 00:08:39 -0400 Subject: [PATCH] skeleton code for new item posting almost complete, just need to work out a few bugs here and there. Once this is complete just need to integrate the four api's and the rest of firebase --- .DS_Store | Bin 10244 -> 10244 bytes .../UserInterfaceState.xcuserstate | Bin 39655 -> 39951 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 50 +++++++-- Vendoo/.DS_Store | Bin 10244 -> 10244 bytes Vendoo/Base.lproj/Main.storyboard | 98 ++++++++++------- Vendoo/ItemImagePickerViewController.swift | 71 +++++++++++- Vendoo/ListingPreviewViewController.swift | 104 ++++++++++++++++++ Vendoo/NetworksTableViewController.swift | 35 ++++-- 8 files changed, 300 insertions(+), 58 deletions(-) diff --git a/.DS_Store b/.DS_Store index da681fb85f717e256118da8f80804138edbc004a..18fdf362f9108a98651d4be86c078c0523563038 100644 GIT binary patch delta 19 acmZn(XbIR5Dao{{eDZw>jm^!HjeG!3y9b5< delta 19 acmZn(XbIR5Dao{kZSs8yjm^!HjeGz~4+jqb diff --git a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/UserInterfaceState.xcuserstate b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/UserInterfaceState.xcuserstate index 4210765bb1d37e64336fbb5fce5308af0e210aac..1b37a7d7f68fa142c5ebe9dd499526bd63ea2dbd 100644 GIT binary patch delta 19785 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 L=Ck+r@R$D&xHf|c delta 19808 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 diff --git a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index 41fdc58..f3fdb64 100644 --- a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -58,11 +58,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Vendoo/NetworksTableViewController.swift" - timestampString = "486128108.896927" + timestampString = "486180405.211327" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "55" - endingLineNumber = "55" + startingLineNumber = "51" + endingLineNumber = "51" landmarkName = "setNetworkSelectFunctionality(_:)" landmarkType = "5"> @@ -74,11 +74,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Vendoo/NetworksTableViewController.swift" - timestampString = "486128108.896927" + timestampString = "486187285.19423" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "91" - endingLineNumber = "91" + startingLineNumber = "104" + endingLineNumber = "104" landmarkName = "tableView(_:cellForRowAtIndexPath:)" landmarkType = "5"> @@ -90,14 +90,46 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Vendoo/NetworksTableViewController.swift" - timestampString = "486128132.689875" + timestampString = "486187285.19423" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "380" - endingLineNumber = "380" + startingLineNumber = "402" + endingLineNumber = "402" landmarkName = "tableView(_:didSelectRowAtIndexPath:)" landmarkType = "5"> + + + + + + + + diff --git a/Vendoo/.DS_Store b/Vendoo/.DS_Store index 92ab8700035ebabca97b9fb4d924393c3e1b85f1..20979621da01cb4827733082eee24b00d6f29c36 100644 GIT binary patch delta 40 pcmZn(XbITxRfJJ#@;4E4#=6N3qEegPME7%TW>-*Sh4c3?0RSws4TAsx delta 36 ncmZn(XbITxRfJJ-@;4Fl$!Eo6H~Wb0=Gx4vpuq~|?P3A|2E`35 diff --git a/Vendoo/Base.lproj/Main.storyboard b/Vendoo/Base.lproj/Main.storyboard index 16db3d3..2e762cf 100644 --- a/Vendoo/Base.lproj/Main.storyboard +++ b/Vendoo/Base.lproj/Main.storyboard @@ -203,65 +203,74 @@ - + - + - + - - - - - + + + + + + + - + - - - + + + + - - + + + + - - - - + + + + + + + + - + - + + - + @@ -272,10 +281,10 @@ - + - + @@ -436,6 +445,17 @@ + @@ -448,7 +468,7 @@ - + @@ -489,7 +509,7 @@ - + @@ -510,7 +530,7 @@ - + @@ -538,7 +558,7 @@ - + @@ -552,7 +572,7 @@ - + @@ -1182,6 +1202,6 @@ - + diff --git a/Vendoo/ItemImagePickerViewController.swift b/Vendoo/ItemImagePickerViewController.swift index 42db451..88785b0 100644 --- a/Vendoo/ItemImagePickerViewController.swift +++ b/Vendoo/ItemImagePickerViewController.swift @@ -6,6 +6,10 @@ // Copyright © 2016 Okechi Onyeje. All rights reserved. // +/* + need to make this class display a top navigation bar so user may cancel the new item posting if need be + */ + import UIKit class ItemImagePickerViewController: UIViewController { @@ -13,7 +17,7 @@ class ItemImagePickerViewController: UIViewController { //Outlets @IBOutlet weak var possibleItemImage: UIImageView! @IBOutlet weak var itemName: UITextField! - @IBOutlet weak var itemDescription: UITextField! + @IBOutlet weak var itemDescription: UITextView! @IBOutlet weak var itemPrice: UITextField! @IBOutlet weak var categoryPicker: UIPickerView! @IBOutlet weak var containerScrollView: UIScrollView! @@ -26,9 +30,13 @@ class ItemImagePickerViewController: UIViewController { // Do any additional setup after loading the view. + // Connect data: self.categoryPicker.delegate = self self.categoryPicker.dataSource = self + self.itemDescription.delegate = self + self.itemName.delegate = self + self.itemPrice.delegate = self // Input data into the Array: pickerData = ["Category 1", "Category 2", "Category 3", "Category 4", "Category 5", "Category 6"] @@ -49,7 +57,16 @@ class ItemImagePickerViewController: UIViewController { // Pass the selected object to the new view controller. if(segue.identifier == "SelectNetworkSegue"){ - (segue.destinationViewController as! NetworksTableViewController).setNetworkSelectFunctionality(true) + print(self.itemName.text!) + print(self.itemDescription.text!) + //print(self.possibleItemImage.image!) + print(self.itemPrice.text!) + + let dict: Dictionary = ["title":self.itemName.text!, "description":self.itemDescription.text!, "picture": UIImage() /*"picture":self.possibleItemImage.image!*/ , "price":self.itemPrice.text!, "category":self.pickerData[self.categoryPicker.selectedRowInComponent(0)]] + + (segue.destinationViewController as! NetworksTableViewController).setListingDictionary(dict) + + print(self.categoryPicker.selectedRowInComponent(0)) } @@ -96,6 +113,56 @@ extension ItemImagePickerViewController: UIPickerViewDataSource { } +extension ItemImagePickerViewController: UITextViewDelegate { + + func textViewDidBeginEditing(textView: UITextView) { + if (textView.text! == "Description") { + textView.text = "" + textView.textColor = UIColor.blackColor() + //optional + } + textView.becomeFirstResponder() + } + + func textViewDidEndEditing(textView: UITextView) { + if (textView.text! == "") { + textView.text = "Description" + textView.textColor = UIColor.lightGrayColor() + //optional + } + textView.resignFirstResponder() + } + + func textViewDidChange(textView: UITextView) { + let fixedWidth = textView.frame.size.width + textView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max)) + let newSize = textView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max)) + var newFrame = textView.frame + newFrame.size = CGSize(width: max(newSize.width, fixedWidth), height: newSize.height) + textView.frame = newFrame; + } +} + +extension ItemImagePickerViewController: UITextFieldDelegate { + + func textFieldShouldReturn(textField: UITextField) -> Bool { + self.view.endEditing(true) + return false + } + + func hideKeyboard() { + self.view.endEditing(true) + } + + func textFieldDidBeginEditing(textField: UITextField) { + self.containerScrollView.setContentOffset(CGPointMake(0, 200), animated: true) + } + + func textFieldDidEndEditing(textField: UITextField) { + self.containerScrollView.setContentOffset(CGPointMake(0, 0), animated: true) + } +} + //Mark: - IBActions extension ItemImagePickerViewController { diff --git a/Vendoo/ListingPreviewViewController.swift b/Vendoo/ListingPreviewViewController.swift index c12c6bb..f571672 100644 --- a/Vendoo/ListingPreviewViewController.swift +++ b/Vendoo/ListingPreviewViewController.swift @@ -6,6 +6,13 @@ // Copyright © 2016 Okechi Onyeje. All rights reserved. // +/* + NOTES: + + need to display navigation bar so user can navigate back to previous screens if changes need to be made + + */ + import UIKit class ListingPreviewViewController: UIViewController { @@ -19,11 +26,18 @@ class ListingPreviewViewController: UIViewController { @IBOutlet weak var itemCategory: UITextView! @IBOutlet weak var networks: UICollectionView! + //class variables + private var networksDictionary: Dictionary = Dictionary() override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. + + // Initialization code + self.networks.delegate = self + self.networks.dataSource = self + self.networks.backgroundView?.backgroundColor = UIColor.whiteColor() } override func didReceiveMemoryWarning() { @@ -31,6 +45,22 @@ class ListingPreviewViewController: UIViewController { // Dispose of any resources that can be recreated. } + func setListing(pic: UIImage, title: String, description: String, price: String, category: String){ + + //fatal error: unexpectedly found nil while unwrapping an Optional value <- need to figure this out + /* + self.itemPicture.image = pic + self.itemTitle.text = title + self.itemDescription.text = description + self.itemPrice.text = price + self.itemCategory.text = category + */ + } + + func setDictionary(dictionary:Dictionary){ + self.networksDictionary = dictionary + } + /* // MARK: - Navigation @@ -58,3 +88,77 @@ extension ListingPreviewViewController { } + +extension ListingPreviewViewController: UICollectionViewDelegate { + + /* + // Uncomment this method to specify if the specified item should be highlighted during tracking + override func collectionView(collectionView: UICollectionView, shouldHighlightItemAtIndexPath indexPath: NSIndexPath) -> Bool { + return true + } + */ + + /* + // Uncomment this method to specify if the specified item should be selected + override func collectionView(collectionView: UICollectionView, shouldSelectItemAtIndexPath indexPath: NSIndexPath) -> Bool { + return true + } + */ + + /* + // Uncomment these methods to specify if an action menu should be displayed for the specified item, and react to actions performed on the item + override func collectionView(collectionView: UICollectionView, shouldShowMenuForItemAtIndexPath indexPath: NSIndexPath) -> Bool { + return false + } + + override func collectionView(collectionView: UICollectionView, canPerformAction action: Selector, forItemAtIndexPath indexPath: NSIndexPath, withSender sender: AnyObject?) -> Bool { + return false + } + + override func collectionView(collectionView: UICollectionView, performAction action: Selector, forItemAtIndexPath indexPath: NSIndexPath, withSender sender: AnyObject?) { + + } + */ + +} + +//Mark: - UICollectionViewDataSource methods +//need to dynamically show, hide, and rearrange the network cells based on users choice of networks +extension ListingPreviewViewController: UICollectionViewDataSource { + func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int { + // #warning Incomplete implementation, return the number of sections + return 1 + } + + + func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { + // #warning Incomplete implementation, return the number of items + return 4 + } + + func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { + + let cell: UICollectionViewCell! + + switch (indexPath.row){ + case 0: + + cell = collectionView.dequeueReusableCellWithReuseIdentifier("ebay", forIndexPath: indexPath) + break + + case 1: + cell = collectionView.dequeueReusableCellWithReuseIdentifier("amazon", forIndexPath: indexPath) + break + case 2: + cell = collectionView.dequeueReusableCellWithReuseIdentifier("etsy", forIndexPath: indexPath) + break + default: + cell = collectionView.dequeueReusableCellWithReuseIdentifier("facebook", forIndexPath: indexPath) + break + } + + + return cell + } + +} diff --git a/Vendoo/NetworksTableViewController.swift b/Vendoo/NetworksTableViewController.swift index 8b89029..20ae9b6 100644 --- a/Vendoo/NetworksTableViewController.swift +++ b/Vendoo/NetworksTableViewController.swift @@ -12,8 +12,7 @@ //Make it so u are accessing REST api service managers from TabController //to promote more centralized code. - //For now putting rest service managers in this controller file to test OAuth: EtsyRESTServiceManager, - //FacebookGraphAPIServiceManager, EbayServiceManager, and AmazonServiceManager. + //need to make the class control the navigation bar by changing the buttons on it to show a back button in the case where class is controlling network selection, and hide back button for the case where class is controlling network authorization */ import UIKit @@ -26,11 +25,8 @@ class NetworksTableViewController: UIViewController { //class variables private var networkToggleOrSelect: Bool = false private var networksDictionary: Dictionary = ["ebay":false, "amazon":false,"etsy":false,"facebook":false] - - - //temporary class variables /*TESTING*/ - //let etsyManager = EtsyRESTAPIManager() - //let fbGraphManager = FacebookGraphAPIManager() + private var itemListingDictionary: Dictionary! = Dictionary() + override func viewDidLoad() { super.viewDidLoad() @@ -58,6 +54,17 @@ class NetworksTableViewController: UIViewController { } +//MARK: - class methods Network Selection when creating a new listing +extension NetworksTableViewController { + + func setListingDictionary(listingDictionary: Dictionary){ + + self.itemListingDictionary = listingDictionary + + } + +} + // MARK: - Navigation extension NetworksTableViewController { @@ -68,7 +75,9 @@ extension NetworksTableViewController { // Pass the selected object to the new view controller. if(segue.identifier == "ItemPreviewSegue"){ + (segue.destinationViewController as! ListingPreviewViewController).setListing(self.itemListingDictionary["picture"] as! UIImage, title: self.itemListingDictionary["title"] as! String, description: self.itemListingDictionary["description"] as! String, price: self.itemListingDictionary["price"] as! String, category: self.itemListingDictionary["category"] as! String) + (segue.destinationViewController as! ListingPreviewViewController).setDictionary(self.networksDictionary) } } } @@ -150,6 +159,15 @@ extension NetworksTableViewController: UITableViewDataSource { } +//MARK: - IBActions +extension NetworksTableViewController { + + @IBAction func showListingPreview(sender: AnyObject) { + + self.performSegueWithIdentifier("ItemPreviewSegue", sender: self) + } + +} //SET UP TO ADD EACH INTEGRATION AS DEVELOPMENT GETS TO IT @@ -434,6 +452,7 @@ extension NetworksTableViewController: UITableViewDelegate { } + /* // Override to support conditional editing of the table view. override func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool { @@ -468,4 +487,4 @@ extension NetworksTableViewController: UITableViewDelegate { return true } */ -} +} \ No newline at end of file