Get-Hip/GetHip/FriendsListViewController.swift

167 lines
5.6 KiB
Swift

//
// FriendsListViewController.swift
// GetHip
//
// Created by Okechi on 1/5/16.
// Copyright (c) 2016 Kroleo. All rights reserved.
//
import UIKit
class FriendsListViewController: UIViewController, UITableViewDelegate, UITableViewDataSource/*PFQueryTableViewController*/ {
//var manager = FriendDataSource()
var friends = []
var request = []
@IBOutlet weak var table: UITableView!
@IBAction func dismissFriendView(sender: UIBarButtonItem) {
self.parentViewController?.dismissViewControllerAnimated(true, completion: nil)
}
@IBAction func addFriend(sender: UIBarButtonItem){
self.performSegueWithIdentifier("FriendRequestSegue", sender: nil)
}
func setData(frnds:[FriendData], requst: [FriendData]){
self.friends = frnds
self.request = requst
}
override func viewDidLoad() {
super.viewDidLoad()
self.table.delegate = self
self.table.dataSource = self
self.title = "Friends"
//self.navigationItem.rightBarButtonItem = self.editButtonItem()
//self.friends = manager.getFriends()
//NSNotificationCenter.defaultCenter().addObserver(self, selector: "refreshTable:", name: "refreshTableView", object: nil)
//debug statements
}
/*func refreshTable(notification: NSNotification){
self.friends = manager.getFriends()
self.table.reloadData()
}*/
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.friends.count + 1
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if( indexPath.row == 0){
let cell = self.table.dequeueReusableCellWithIdentifier("RequestCell", forIndexPath: indexPath) as? FriendRequestCell
//sets count for current number of request
cell?.requestNumber.text = String(self.request.count)
return cell!
}
else{
let friend = self.friends[indexPath.row - 1] as? FriendData
let cell = self.table.dequeueReusableCellWithIdentifier("FriendCell", forIndexPath: indexPath) as? FriendsCell
//sets display name of friend (print for debugging purposes)
cell!.friendName.text = friend!.displayName
//println(friend!.displayName)
//sets profile image of current cell
//checks if friend user has a profile image or not
if friend?.profileImg == nil {
cell!.proImage.backgroundColor = UIColor.grayColor()
}
else{
cell!.proImage.image = friend?.profileImg!.image!
}
//rounds uiimage and configures UIImageView
//cell!.proImage.layer.borderWidth = 3.0
//cell!.proImage.clipsToBounds = true
cell!.proImage.layer.cornerRadius = cell!.proImage.frame.size.width/2
//cell!.proImage.layer.borderColor = UIColor.whiteColor().CGColor
//cell!.proImage.layer.masksToBounds = true
return cell!
}
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
if(indexPath.row == 0){
if(self.request.count == 0){
self.performSegueWithIdentifier("NoRequestSegue", sender: nil)
}else{
self.performSegueWithIdentifier("PendingRequestSegue", sender: nil)
}
}
}
override func setEditing(editing: Bool, animated: Bool) {
super.setEditing(editing, animated: animated)
self.table.setEditing(editing, animated: true)
if editing{
}
}
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
switch editingStyle {
case .Delete:
//delete friend from users friend array, parse, and tableView
println("delete")
default:
return
}
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "PendingRequestSegue" {
let vc: PendingRequestViewController = (segue.destinationViewController as? PendingRequestViewController)!
vc.setData(self.request as! [FriendData])
}
if segue.identifier == "FriendRequestSegue" {
var frndNames: [String] = []
println(self.friends.count)
if (self.friends.count != 0){
for i in 0...self.friends.count-1{
var frends: FriendData! = self.friends[i] as! FriendData
println(frends.displayName!)
frndNames.append(frends.displayName!)
}
}
/*for name in self.friends{
//bad instruction here, fix later
println(name.displayName as String!)
frndNames.append(name.displayName!)
}*/
let vc: FriendRequestViewController = (segue.destinationViewController as? FriendRequestViewController)!
vc.setData(frndNames)
}
}
}