vendoo_v1.0/Vendoo/NetworksTableViewController.swift
Okechi Onyeje bfd4832b7d Error Messages Set Up
- for ebay service getting items and authentication
2017-01-25 18:45:03 -05:00

840 lines
36 KiB
Swift

//
// NetworksTableViewController.swift
// Vendoo
//
// Created by Okechi Onyeje on 5/26/16.
// Copyright © 2016 Okechi Onyeje. All rights reserved.
//
/*
NOTES:
//Make it so u are accessing REST api service managers from TabController
//to promote more centralized code.
//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
import Foundation
import SWRevealViewController
class NetworksTableViewController: UIViewController {
//IBOutlets
@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var menuButton: UIBarButtonItem!
//class variables
private var networkToggleOrSelect: Bool = false
private var networksDictionary: Dictionary<String, Bool> = ["ebay":false, "amazon":false,"etsy":false,"facebook":false]
private var itemListingDictionary: Dictionary<String, AnyObject>! = Dictionary<String, AnyObject>()
private var graphManager: FacebookGraphAPIManager! = nil
private var firManager: FirebaseManager! = nil
private var etsyManager: EtsyRESTAPIManager! = nil
private var ebayManager: EbayWebServiceManager! = EbayWebServiceManager()
private var shouldShowDictionary: Dictionary<String, Bool> = ["ebay":false, "amazon":false,"etsy":false,"facebook":false]
private var networkOrderSelection: [String] = []
private var networkCount = 0
var loadingView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.delegate = self
self.tableView.dataSource = self
if(!networkToggleOrSelect){
((self.tabBarController as? HomeViewController)?.ebayGraphManager)!.delegate = self
}else{
self.ebayManager.delegate = self
}
if self.revealViewController() != nil {
menuButton.target = self.revealViewController()
menuButton.action = "revealToggle:"
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
}
override func viewDidAppear(animated: Bool) {
if (!self.networkToggleOrSelect) {
(menuButton.target as! SWRevealViewController).delegate = self
self.tableView.reloadData()
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
//set the class boolean in order to choose what toggling each network does
func setNetworkSelectFunctionality(bool: Bool){
self.networkToggleOrSelect = bool
}
func toggleMarketPlaceVisibitlity (market: String) {
self.shouldShowDictionary[market] = !self.shouldShowDictionary[market]!
}
private func checkVisibility () -> String? {
var string = ""
for (market, visibility) in self.shouldShowDictionary {
if visibility {
self.networkCount += 1
self.shouldShowDictionary[market] = !self.shouldShowDictionary[market]!
string = market
self.networkOrderSelection.append(market)
break
}
}
return string
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
if(!networkToggleOrSelect) {
self.tabBarController?.tabBar.hidden = false
}
}
}
//MARK: - class methods Network Selection when creating a new listing
extension NetworksTableViewController {
func setListingDictionary(listingDictionary: Dictionary<String, AnyObject>){
self.itemListingDictionary = listingDictionary
}
func setManagers(fbManager: FacebookGraphAPIManager, fireManager: FirebaseManager, ebayManager: EbayWebServiceManager, etsyManager: EtsyRESTAPIManager){
self.graphManager = fbManager
self.firManager = fireManager
self.ebayManager = ebayManager
self.etsyManager = etsyManager
}
}
// MARK: - Side Menu View
extension NetworksTableViewController: SWRevealViewControllerDelegate {
func revealController(revealController: SWRevealViewController!, didMoveToPosition position: FrontViewPosition) {
if(position == FrontViewPosition.Left) {
for view in self.view.subviews {
view.userInteractionEnabled = true
}
self.tabBarController?.tabBar.userInteractionEnabled = true
} else {
for view in self.view.subviews {
if !view.isKindOfClass(UINavigationBar){
view.userInteractionEnabled = false
}
}
self.tabBarController?.tabBar.userInteractionEnabled = false
}
}
func revealController(revealController: SWRevealViewController!, willMoveToPosition position: FrontViewPosition) {
if(position == FrontViewPosition.Left) {
for view in self.view.subviews {
view.userInteractionEnabled = true
}
self.tabBarController?.tabBar.userInteractionEnabled = true
} else {
for view in self.view.subviews {
if !view.isKindOfClass(UINavigationBar){
view.userInteractionEnabled = false
}
}
self.tabBarController?.tabBar.userInteractionEnabled = false
}
}
}
// MARK: - Navigation
extension NetworksTableViewController {
// 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.
if(segue.identifier == "ItemPreviewSegue"){
if(networkCount > 0){
var count = 0;
for (_,v) in self.networksDictionary{
if v {
count += 1
}
}
if(count > 0){
(segue.destinationViewController as! ListingPreviewViewController).setDictionary(self.networksDictionary, itemdictionary: self.itemListingDictionary)
(segue.destinationViewController as! ListingPreviewViewController).setManagers(self.graphManager, fireManager: self.firManager, ebayManager: self.ebayManager, etsyManager: self.etsyManager)
}else{
let alert = UIAlertController(title: "No Networks Selected", message: "You have not selected any networks to publish on. At least 1 network must be selected to continue.", 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)
}
}else{
let alert = UIAlertController(title: "No Networks Authorized", message: "You currently have no authorized networks to post on. You will not be able to publish this listing until at least 1 network has been authorized and selected for publishing.", 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)
}
}
if(segue.identifier == "EbaySettingsSegue") {
(segue.destinationViewController as! EbaySettingsViewController).loadManager(self.ebayManager)
}
if(segue.identifier == "EtsySettingsSegue") {
(segue.destinationViewController as! EtsySettingsViewController).loadManager(self.etsyManager)
}
}
}
// MARK: - TableView Datasource methods
extension NetworksTableViewController: UITableViewDataSource {
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if(self.networkToggleOrSelect) {
var count = 0
// #warning Incomplete implementation, return the number of rows
for (_, visibility) in self.shouldShowDictionary {
if visibility {
count += 1
}
}
return count
}
else {
return /*4*/ 3
}
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: UITableViewCell!
//case where class is being used in new item posting workflow to select which network to sell on
//may hide future networks that don't apply to a listing
if(self.networkToggleOrSelect){
let market = self.checkVisibility()!
switch (market) {
case "facebook":
cell = (self.tableView.dequeueReusableCellWithIdentifier("facebook", forIndexPath: indexPath) as! FBTableViewCell)
break
case "ebay":
cell = (self.tableView.dequeueReusableCellWithIdentifier("ebay", forIndexPath: indexPath) as! EbayTableViewCell)
break
case "etsy":
cell = (self.tableView.dequeueReusableCellWithIdentifier("etsy", forIndexPath: indexPath) as! EtsyTableViewCell)
break
case "amazon":
cell = (self.tableView.dequeueReusableCellWithIdentifier("amazon", forIndexPath: indexPath) as! AmazonTableViewCell)
break
default:
cell = UITableViewCell()
break
}
}
else{
//case where class is being used to authorize a network for the app to post on
switch (indexPath.row){
case 0:
//loads network cell for ebay
cell = (self.tableView.dequeueReusableCellWithIdentifier("ebay", forIndexPath: indexPath) as! EbayTableViewCell)
if(((self.tabBarController as? HomeViewController)?.ebayGraphManager.isAuthorized)!){
dispatch_async(dispatch_get_main_queue(), {
(cell as! EbayTableViewCell).authorizeBtn.setTitle("Logout", forState: UIControlState.Normal)
(cell as! EbayTableViewCell).settingsBtn.enabled = true
(cell as! EbayTableViewCell).settingsBtn.hidden = false
})
}else{
(cell as! EbayTableViewCell).settingsBtn.enabled = false
(cell as! EbayTableViewCell).settingsBtn.hidden = true
(cell as! EbayTableViewCell).authorizeBtn.setTitle("Login", forState: UIControlState.Normal)
}
break
/*case 1:
//loads network cell for amazon
cell = (self.tableView.dequeueReusableCellWithIdentifier("amazon", forIndexPath: indexPath) as! AmazonTableViewCell)
break*/
case 1:
//loads network cell for etsy
cell = (self.tableView.dequeueReusableCellWithIdentifier("etsy", forIndexPath: indexPath) as! EtsyTableViewCell)
let tabBar = self.tabBarController
if(((tabBar as? HomeViewController)?.etsyManager.isAuthorized)!){
dispatch_async(dispatch_get_main_queue(), {
(cell as! EtsyTableViewCell).authorizeBtn.setTitle("Logout", forState: UIControlState.Normal)
(cell as! EtsyTableViewCell).settingsBtn.enabled = true
(cell as! EtsyTableViewCell).settingsBtn.hidden = false
})
}else{
(cell as! EtsyTableViewCell).settingsBtn.enabled = false
(cell as! EtsyTableViewCell).settingsBtn.hidden = true
(cell as! EtsyTableViewCell).authorizeBtn.setTitle("Login", forState: UIControlState.Normal)
}
break
default:
//loads network cell for facebook
cell = (self.tableView.dequeueReusableCellWithIdentifier("facebook", forIndexPath: indexPath) as! FBTableViewCell)
let tabBar = self.tabBarController
if(((tabBar as? HomeViewController)?.fbGraphManager.isAuthorized)!){
dispatch_async(dispatch_get_main_queue(), {
(cell as! FBTableViewCell).settingsBtn.enabled = true
(cell as! FBTableViewCell).settingsBtn.hidden = false
(cell as! FBTableViewCell).authorizeBtn.setTitle("Logout", forState: UIControlState.Normal)
})
}else{
dispatch_async(dispatch_get_main_queue(), {
(cell as! FBTableViewCell).settingsBtn.enabled = false
(cell as! FBTableViewCell).settingsBtn.hidden = true
(cell as! FBTableViewCell).authorizeBtn.setTitle("Login", forState: UIControlState.Normal)
})
}
break
}
}
return cell
}
}
//MARK: - IBActions
extension NetworksTableViewController {
@IBAction func showListingPreview(sender: AnyObject) {
self.performSegueWithIdentifier("ItemPreviewSegue", sender: self)
}
@IBAction func cancelListing(sender: AnyObject) {
self.presentingViewController?.dismissViewControllerAnimated(true, completion: nil)
}
@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.itemListingDictionary["pictures"]! as? [UIImageView])?[0].image == nil){
let alert = UIAlertController(title: "Image Needed", message: "To save the 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)
}else{
//save listing to private user path in firebase
let newListingRef = self.firManager.ref.child("Users").child("\(self.firManager.user_email)").child("user_Listings").childByAutoId()
self.networkCount > 0 ? (self.networksDictionary["areNetworksChosen"] = true) : (self.networksDictionary["areNetworksChosen"] = false)
let listing = ["listingID": newListingRef.key,
"seller email": (NSUserDefaults.standardUserDefaults().objectForKey("email") as? String)!,
"listingTitle": self.itemListingDictionary["title"],
"listingPrice": self.itemListingDictionary["price"],
"listingCategory": self.itemListingDictionary["category"],
"listingQuantity": self.itemListingDictionary["quantity"],
"listingDescription": self.itemListingDictionary["description"],
"numberOfSupportingImages" : ((self.itemListingDictionary["pictures"] as? [UIImageView])?.count)! - 1,
"isListingDraft": true,
"networks": self.networksDictionary]
self.firManager.ref.observeSingleEventOfType(.Value, withBlock: { snapshot in
let databaseDict = snapshot.value as! [String : AnyObject]
let storageRef = self.firManager.storage.referenceForURL((databaseDict["image_storage"] as? String)!)
//check each imageview to see if there is an image to upload
if((self.itemListingDictionary["pictures"] as? [UIImageView])!.count >= 2){
let listingImageRef = storageRef.child("images/\(newListingRef.key)"+"/2.jpg")
listingImageRef.putData(UIImageJPEGRepresentation((self.itemListingDictionary["pictures"] as? [UIImageView])![1].image!, 0.8)!, metadata: nil,completion:
{(metadata, error) -> Void in
print(metadata)
})
}
if((self.itemListingDictionary["pictures"] as? [UIImageView])!.count >= 3){
let listingImageRef = storageRef.child("images/\(newListingRef.key)"+"/3.jpg")
listingImageRef.putData(UIImageJPEGRepresentation((self.itemListingDictionary["pictures"] as? [UIImageView])![2].image!, 0.8)!, metadata: nil,completion:
{(metadata, error) -> Void in
print(metadata)
})
}
if((self.itemListingDictionary["pictures"] as? [UIImageView])!.count >= 4){
let listingImageRef = storageRef.child("images/\(newListingRef.key)"+"/4.jpg")
listingImageRef.putData(UIImageJPEGRepresentation((self.itemListingDictionary["pictures"] as? [UIImageView])![3].image!, 0.8)!, metadata: nil,completion:
{(metadata, error) -> Void in
})
}
if((self.itemListingDictionary["pictures"] as? [UIImageView])!.count == 5){
let listingImageRef = storageRef.child("images/\(newListingRef.key)"+"/5.jpg")
listingImageRef.putData(UIImageJPEGRepresentation((self.itemListingDictionary["pictures"] as? [UIImageView])![4].image!, 0.8)!, metadata: nil,completion:
{(metadata, error) -> Void in
})
}
if((self.itemListingDictionary["pictures"] as? [UIImageView])!.count >= 1){
let listingImageRef = storageRef.child("images/\(newListingRef.key)"+"/main.jpg")
listingImageRef.putData(UIImageJPEGRepresentation((self.itemListingDictionary["pictures"] as? [UIImageView])![0].image!, 0.8)!, metadata: nil,completion:
{(metadata, error) -> Void in
newListingRef.setValue(listing as? Dictionary<String,AnyObject>)
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: {
self.dismissViewControllerAnimated(true, completion: nil)
})}))
self.presentViewController(alert, animated: true, completion: nil)
})
}
})
}
}
}
//SET UP TO ADD EACH INTEGRATION AS DEVELOPMENT GETS TO IT
//MARK: - Tableview Delegate Methods
extension NetworksTableViewController: UITableViewDelegate {
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
//case where class is being used in new item posting workflow to select which network to sell on
if(self.networkToggleOrSelect){
switch (self.networkOrderSelection[indexPath.row]){
case "ebay":
let cell: EbayTableViewCell!
cell = (self.tableView.dequeueReusableCellWithIdentifier("ebay", forIndexPath: indexPath) as! EbayTableViewCell)
cell.setSelected(false, animated: false)
//selection code for ebay
if(cell.networkToggle.on){
cell.networkToggle.setOn(false, animated: true)
cell.networkToggle.on = false
//code to deselect network
self.networksDictionary["ebay"] = false
}
else{
cell.networkToggle.setOn(true, animated: true)
cell.networkToggle.on = true
//code to select network
self.networksDictionary["ebay"] = true
}
break
case "amazon":
let cell: AmazonTableViewCell!
cell = (self.tableView.dequeueReusableCellWithIdentifier("amazon", forIndexPath: indexPath) as! AmazonTableViewCell)
cell.setSelected(false, animated: false)
//selection code for amazon
if(cell.networkToggle.on == true){
dispatch_async(dispatch_get_main_queue(), { () -> Void in
cell.networkToggle.setOn(false, animated: true)
})
//code to deselect network
self.networksDictionary["amazon"] = false
}
else{
dispatch_async(dispatch_get_main_queue(), { () -> Void in
cell.networkToggle.setOn(true, animated: true)
})
//code to select network
self.networksDictionary["amazon"] = true
}
break
case "etsy":
let cell: EtsyTableViewCell!
cell = (self.tableView.dequeueReusableCellWithIdentifier("etsy", forIndexPath: indexPath) as! EtsyTableViewCell)
cell.setSelected(false, animated: false)
//selection code for etsy
if(cell.networkToggle.on == true){
dispatch_async(dispatch_get_main_queue(), { () -> Void in
cell.networkToggle.setOn(false, animated: true)
cell.networkToggle.on = false
})
//code to deselect network
self.networksDictionary["etsy"] = false
}
else{
dispatch_async(dispatch_get_main_queue(), { () -> Void in
cell.networkToggle.setOn(true, animated: true)
cell.networkToggle.on = true
})
//code to select network
self.networksDictionary["etsy"] = true
}
break
case "facebook":
let cell: FBTableViewCell!
cell = (self.tableView.dequeueReusableCellWithIdentifier("facebook", forIndexPath: indexPath) as! FBTableViewCell)
cell.setSelected(false, animated: false)
//selection code for facebook
if(cell.networkToggle.on == true){
dispatch_async(dispatch_get_main_queue(), { () -> Void in
cell.networkToggle.setOn(false, animated: true)
})
//code to deselect network
self.networksDictionary["facebook"] = false
}
else{
dispatch_async(dispatch_get_main_queue(), { () -> Void in
cell.networkToggle.setOn(true, animated: true)
})
//code to select network
self.networksDictionary["facebook"] = true
}
break
default:
break
}
}
}
}
extension NetworksTableViewController: EbayWebServiceManagerDelegate {
//open webview for user to login with ebay
func signInUser(signInString : String!) {
let mywebViewController = UIViewController()
let myWebView = UIWebView(frame: mywebViewController.view.bounds)
myWebView.delegate = self
myWebView.loadRequest(NSURLRequest(URL: NSURL(string: signInString)!))
mywebViewController.view = myWebView
let navController = UINavigationController(rootViewController: mywebViewController)
//selector function to dismiss webview
mywebViewController.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Done, target: self, action: Selector("dismiss"))
self.presentViewController(navController, animated: true, completion: nil)
}
}
extension NetworksTableViewController: UIWebViewDelegate {
func webView(webView: UIWebView, didFailLoadWithError error: NSError?) {
print("Webview fail with error \(error)");
}
func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
return true;
}
func webViewDidStartLoad(webView: UIWebView) {
print("Webview started Loading")
}
func webViewDidFinishLoad(webView: UIWebView) {
print("Webview did finish load")
if (webView.request != nil)
{
var responseString : NSString? = webView.stringByEvaluatingJavaScriptFromString("document.documentElement.outerHTML")!
if((responseString!.containsString("Authorization successfully completed"))){
NSLog("Oauth successful")
((self.tabBarController as? HomeViewController)?.ebayGraphManager)!.fetchToken({
(loginResponse, error) in
if((error as? Bool) != nil && (error as! Bool) && loginResponse as? [[String : String]] != nil){
var listOfErrors = ""
for errorData in loginResponse as! [[String:String]] {
if(errorData["severity_code"] == "Error") {
listOfErrors += "Error Code: " + errorData["error_code"]! + "\n"
if errorData["error_code"] == "931" {
listOfErrors += "Message: Must relogin into your account to reauthorize your Ebay account for Vendoo."
}else{
listOfErrors += "Message: " + errorData["long_message"]! + "\n\n"
}
}
}
let alert = UIAlertController(title: "A Problem With Ebay Login", message: "The following is the list of errors when logging in to ebay.\n\n\(listOfErrors).\n\nAn easy fix to this would be to deauthorize vendoo from your account manually on the Ebay official site and relogin with the Vendoo application.", preferredStyle: .Alert)
alert.addAction(UIAlertAction(title: "OK", style: .Default, handler:{(action: UIAlertAction!) in
alert.dismissViewControllerAnimated(true, completion: {
})
}))
self.presentViewController(alert, animated: true, completion: nil)
}
})
}
}
}
//called when webview is dismissed
func dismiss() {
self.dismissViewControllerAnimated(true, completion: nil)
}
}
extension NetworksTableViewController {
@IBAction func toggleAuth(sender: UIButton){
print(sender.superview!.superview!.classForCoder)
//Authorize app
if(sender.titleLabel?.text == "Login") {
//check which network cell was selected to determine which network to perform oauth on
switch (sender.superview?.superview?.classForCoder){
case is EbayTableViewCell.Type:
let tabBar = self.tabBarController
((tabBar as? HomeViewController)?.ebayGraphManager.authorizeApp({
something,_ -> Void in
// switch login button to logout and display settings button once login process is complete
dispatch_async(dispatch_get_main_queue(), {
sender.setTitle("Logout", forState: UIControlState.Normal)
(sender.superview?.superview as! EbayTableViewCell).settingsBtn.enabled = true
(sender.superview?.superview as! EbayTableViewCell).settingsBtn.hidden = false
})
}))!
break
/*case is AmazonTableViewCell.Type:
break*/
case is EtsyTableViewCell.Type:
let tabBar = self.tabBarController
((tabBar as? HomeViewController)?.etsyManager.authorizeApp(self, onComplete: {
something , _ -> Void in
// switch login button to logout and display settings button once login process is complete
dispatch_async(dispatch_get_main_queue(), {
sender.setTitle("Logout", forState: UIControlState.Normal)
(sender.superview?.superview as! EtsyTableViewCell).settingsBtn.enabled = true
(sender.superview?.superview as! EtsyTableViewCell).settingsBtn.hidden = false
})
}))!
break
case is FBTableViewCell.Type:
let tabBar = self.tabBarController
((tabBar as? HomeViewController)?.fbGraphManager.authorizeApp(self, onComplete: {
something , _ -> Void in
// switch login button to logout and display settings button once login process is complete
dispatch_async(dispatch_get_main_queue(), {
sender.setTitle("Logout", forState: UIControlState.Normal)
(sender.superview?.superview as! FBTableViewCell).settingsBtn.enabled = true
(sender.superview?.superview as! FBTableViewCell).settingsBtn.hidden = false
})
}))!
break
default:
break
}
}
//DeAuthorize app
else {
switch (sender.superview?.superview?.classForCoder){
case is EbayTableViewCell.Type:
let tabBar = self.tabBarController
((tabBar as? HomeViewController)?.ebayGraphManager.deauthorizeApp())!
dispatch_async(dispatch_get_main_queue(), {
// switch logout button to login and hide settings button once login process is complete
sender.setTitle("Login", forState: UIControlState.Normal)
(sender.superview?.superview as! EbayTableViewCell).settingsBtn.enabled = false
(sender.superview?.superview as! EbayTableViewCell).settingsBtn.hidden = true
})
break
/*case is AmazonTableViewCell.Type:
break*/
case is EtsyTableViewCell.Type:
let tabBar = self.tabBarController
((tabBar as? HomeViewController)?.etsyManager.deAuthorizeApp(self))!
dispatch_async(dispatch_get_main_queue(), {
// switch logout button to login and hide settings button once login process is complete
sender.setTitle("Login", forState: UIControlState.Normal)
(sender.superview?.superview as! EtsyTableViewCell).settingsBtn.enabled = false
(sender.superview?.superview as! EtsyTableViewCell).settingsBtn.hidden = true
})
break
case is FBTableViewCell.Type:
let tabBar = self.tabBarController
((tabBar as? HomeViewController)?.fbGraphManager.deAuthorizeApp(self))!
dispatch_async(dispatch_get_main_queue(), {
// switch logout button to login and hide settings button once login process is complete
sender.setTitle("Login", forState: UIControlState.Normal)
(sender.superview?.superview as! FBTableViewCell).settingsBtn.enabled = false
(sender.superview?.superview as! FBTableViewCell).settingsBtn.hidden = true
})
break
default:
break
}
}
}
@IBAction func toggleNetworkSelection(sender: UISwitch) {
switch (sender.superview?.superview?.classForCoder){
case is EbayTableViewCell.Type:
//selection code for ebay
if((sender.superview?.superview as! EbayTableViewCell).networkToggle.on){
//code to select network
self.networksDictionary["ebay"] = true
}
else{
//code to deselect network
self.networksDictionary["ebay"] = false
}
break
/*case is AmazonTableViewCell.Type:
//selection code for amazon
if((sender.superview?.superview as! AmazonTableViewCell).networkToggle.on){
//code to select network
self.networksDictionary["amazon"] = true
}
else{
//code to deselect network
self.networksDictionary["amazon"] = false
}
break*/
case is EtsyTableViewCell.Type:
//selection code for etsy
if((sender.superview?.superview as! EtsyTableViewCell).networkToggle.on){
//code to select network
self.networksDictionary["etsy"] = true
}
else{
//code to deselect network
self.networksDictionary["etsy"] = false
}
break
case is FBTableViewCell.Type:
//selection code for facebook
if((sender.superview?.superview as! FBTableViewCell).networkToggle.on){
//code to select network
self.networksDictionary["facebook"] = true
}
else{
//code to deselect network
self.networksDictionary["facebook"] = false
}
break
default:
break
}
}
}