mirror of
https://bitbucket.org/vendoo/vendoo_v1.0.git
synced 2025-12-25 11:47:40 +00:00
added ability to cancel adding a new listing and now hiding tab bar when starting the listing process. All images are now being downloaded from each listing
144 lines
7.2 KiB
Swift
144 lines
7.2 KiB
Swift
//
|
|
// HomeViewController.swift
|
|
// Vendoo
|
|
//
|
|
// Created by Okechi Onyeje on 5/26/16.
|
|
// Copyright © 2016 Okechi Onyeje. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
class HomeViewController: UITabBarController {
|
|
//acts as RESTful api call manager for etsy
|
|
//call this from tabbar controller to use etsy REST calls
|
|
let etsyManager: EtsyRESTAPIManager = EtsyRESTAPIManager()
|
|
let fbGraphManager = FacebookGraphAPIManager()
|
|
let firebaseManager = FirebaseManager()
|
|
let ebayGraphManager = EbayWebServiceManager()
|
|
var userListings: [Listing] = []
|
|
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
|
|
// Do any additional setup after loading the view.
|
|
dispatch_async(dispatch_get_main_queue(), {
|
|
self.firebaseManager.ref.child("Users/\(self.firebaseManager.user_email)/user_Listings").observeSingleEventOfType( .Value, withBlock: {
|
|
(snapshot) -> Void in
|
|
|
|
let listingDict = snapshot.value as? [String : AnyObject]
|
|
if listingDict != nil {
|
|
dispatch_async(dispatch_get_main_queue(), {
|
|
|
|
|
|
|
|
for (key, values) in listingDict! {
|
|
let serviceGroup: dispatch_group_t = dispatch_group_create()
|
|
//@TODO: this is now getting all images but it is only displaying the last retrieved listings's set of images
|
|
/*dispatch_group_notify(countGroup, dispatch_get_main_queue(), {
|
|
print(HomeViewController.completionCount)
|
|
HomeViewController.completionCount += 1
|
|
if(HomeViewController.completionCount == 4){
|
|
|
|
HomeViewController.completionCount = 0
|
|
dispatch_group_leave(serviceGroup)
|
|
}
|
|
})*/
|
|
self.firebaseManager.ref.observeSingleEventOfType(.Value, withBlock: { snapshot in
|
|
|
|
let databaseDict = snapshot.value as! [String : AnyObject]
|
|
|
|
let storageRef = self.firebaseManager.storage.referenceForURL((databaseDict["image_storage"] as? String)!)
|
|
let mainListingImage = storageRef.child("images/\(key)/main.jpg")
|
|
|
|
|
|
//@TODO: add in logic to programmatically retrieve each stored image and store in listing object as a way to display each image
|
|
dispatch_group_enter(serviceGroup)
|
|
mainListingImage.dataWithMaxSize(10 * 1024 * 1024, completion: {
|
|
(dataMain, error) -> Void in
|
|
|
|
if(error != nil){
|
|
print("problem retrieving items")
|
|
}else{
|
|
|
|
let mainImage = UIImage(data: dataMain!)
|
|
var listingImages: [UIImage] = [mainImage!]
|
|
var count = 0
|
|
//Get supporting images
|
|
for i in 2...5 {
|
|
let supportListingImg1 = storageRef.child("images/\(key)/\(i).jpg")
|
|
supportListingImg1.dataWithMaxSize(10 * 1024 * 1024, completion: {
|
|
(data1, error) -> Void in
|
|
|
|
if(error != nil){
|
|
print("support image \(i - 1) for key, \(key), does not exist")
|
|
}else{
|
|
listingImages.append(UIImage(data: data1!)!)
|
|
}
|
|
print(key)
|
|
count+=1
|
|
if(count == 4){
|
|
dispatch_group_leave(serviceGroup)
|
|
}
|
|
})
|
|
|
|
}
|
|
|
|
|
|
dispatch_group_notify(serviceGroup, dispatch_get_main_queue(), {
|
|
print(listingImages.count)
|
|
let listingInfo = values as? [String : AnyObject]
|
|
self.userListings.append(
|
|
Listing(itemTitle: (listingInfo!["listingTitle"] as? String)!,
|
|
itemCategory: listingInfo!["listingCategory"] as? String,
|
|
itemPrice: listingInfo!["listingPrice"] as? String,
|
|
itemDescription: listingInfo!["listingDescription"] as? String,
|
|
itemImages: listingImages,
|
|
isDraftListing: (listingInfo!["isListingDraft"] as? Bool)!,
|
|
itemKey: key,
|
|
networksSellingOn: (listingInfo!["networks"] as? Dictionary<String, Bool>)!
|
|
))
|
|
|
|
NSNotificationCenter.defaultCenter().postNotificationName("finished_fetching_listings", object: nil)
|
|
})
|
|
|
|
|
|
|
|
}
|
|
})
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
}
|
|
|
|
|
|
})
|
|
})
|
|
}
|
|
|
|
override func didReceiveMemoryWarning() {
|
|
super.didReceiveMemoryWarning()
|
|
// Dispose of any resources that can be recreated.
|
|
}
|
|
|
|
|
|
|
|
// MARK: - Navigation
|
|
|
|
// In a storyboard-based application, you will often want to do a little preparation before navigation
|
|
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
|
|
|
|
// Get the new view controller using segue.destinationViewController.
|
|
// Pass the selected object to the new view controller.
|
|
}
|
|
|
|
|
|
}
|