Fix miscellaneous bugs
This commit is contained in:
@@ -130,6 +130,7 @@ class MainViewController: UIViewController, SwitchesViewControllerDelegate {
|
|||||||
_updateVisualization(true)
|
_updateVisualization(true)
|
||||||
|
|
||||||
for device in devices {
|
for device in devices {
|
||||||
|
// WARNING: don't commit
|
||||||
_server.toggleDevice(device, state: device.state, completion: { (error: NSError?) -> Void in })
|
_server.toggleDevice(device, state: device.state, completion: { (error: NSError?) -> Void in })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,20 +88,13 @@ class SwitchesViewController: UIViewController,
|
|||||||
{
|
{
|
||||||
didSet
|
didSet
|
||||||
{
|
{
|
||||||
let hash = self.devices.reduce(0, combine: {$0 ^ $1.hashValue})
|
// sort devices by name
|
||||||
if (hash != _currentDevicesHash) {
|
|
||||||
// sort by name
|
|
||||||
self.devices.sortInPlace({ (d1: WemoDevice, d2: WemoDevice) -> Bool in
|
self.devices.sortInPlace({ (d1: WemoDevice, d2: WemoDevice) -> Bool in
|
||||||
return (d1.name.compare(d2.name) == .OrderedAscending)
|
return (d1.name.compare(d2.name) == .OrderedAscending)
|
||||||
})
|
})
|
||||||
|
|
||||||
// replace "Dance Dance Revolution" names with "DDR" to save space
|
let hash = self.devices.reduce(0, combine: {$0 ^ $1.hashValue})
|
||||||
for device in self.devices {
|
if (hash != _currentDevicesHash) {
|
||||||
if let range = device.name.rangeOfString("Dance Dance Revolution") {
|
|
||||||
device.name.replaceRange(range, with: "DDR")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let previousSet = NSOrderedSet(array: oldValue)
|
let previousSet = NSOrderedSet(array: oldValue)
|
||||||
let newSet = NSOrderedSet(array: self.devices)
|
let newSet = NSOrderedSet(array: self.devices)
|
||||||
var insertedIndexPaths: [NSIndexPath] = []
|
var insertedIndexPaths: [NSIndexPath] = []
|
||||||
@@ -174,11 +167,10 @@ class SwitchesViewController: UIViewController,
|
|||||||
let reuseID = SwitchesViewController.collectionViewDeviceSwitchCellReuseIdentifier
|
let reuseID = SwitchesViewController.collectionViewDeviceSwitchCellReuseIdentifier
|
||||||
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseID, forIndexPath: indexPath) as! WemoDeviceCellView
|
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseID, forIndexPath: indexPath) as! WemoDeviceCellView
|
||||||
|
|
||||||
let deviceIdx = indexPath.item - ActionCell.count
|
let device = _deviceAtIndexPath(indexPath)
|
||||||
let device = self.devices[deviceIdx]
|
cell.deviceName = device.name
|
||||||
cell.device = device
|
|
||||||
cell.toggled = (device.state == .On)
|
cell.toggled = (device.state == .On)
|
||||||
cell.ordinal = deviceIdx + 1
|
cell.ordinal = indexPath.item - ActionCell.count + 1
|
||||||
|
|
||||||
return cell
|
return cell
|
||||||
}
|
}
|
||||||
@@ -224,8 +216,7 @@ class SwitchesViewController: UIViewController,
|
|||||||
let cell = collectionView.cellForItemAtIndexPath(indexPath) as! WemoDeviceCellView
|
let cell = collectionView.cellForItemAtIndexPath(indexPath) as! WemoDeviceCellView
|
||||||
cell.toggled = !cell.toggled
|
cell.toggled = !cell.toggled
|
||||||
|
|
||||||
let deviceIdx = indexPath.item - ActionCell.count
|
let device = _deviceAtIndexPath(indexPath)
|
||||||
let device = self.devices[deviceIdx]
|
|
||||||
device.state = (cell.toggled ? .On : .Off)
|
device.state = (cell.toggled ? .On : .Off)
|
||||||
|
|
||||||
self.delegate?.switchesViewControllerDidToggleDevices(self, devices: [device])
|
self.delegate?.switchesViewControllerDidToggleDevices(self, devices: [device])
|
||||||
@@ -249,4 +240,13 @@ class SwitchesViewController: UIViewController,
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MARK: Internal
|
||||||
|
|
||||||
|
internal func _deviceAtIndexPath(indexPath: NSIndexPath) -> WemoDevice
|
||||||
|
{
|
||||||
|
let deviceIdx = indexPath.item - ActionCell.count
|
||||||
|
let device = self.devices[deviceIdx]
|
||||||
|
return device
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -93,6 +93,8 @@ class WemoServer {
|
|||||||
let request = NSMutableURLRequest(URL: url!)
|
let request = NSMutableURLRequest(URL: url!)
|
||||||
request.HTTPMethod = "POST"
|
request.HTTPMethod = "POST"
|
||||||
|
|
||||||
|
print("Toggle: \(url!.absoluteString)")
|
||||||
|
|
||||||
let task = _urlSession.dataTaskWithRequest(request) { (data: NSData?, response: NSURLResponse?, error: NSError?) -> Void in
|
let task = _urlSession.dataTaskWithRequest(request) { (data: NSData?, response: NSURLResponse?, error: NSError?) -> Void in
|
||||||
var clientError: NSError? = nil
|
var clientError: NSError? = nil
|
||||||
|
|
||||||
|
|||||||
@@ -54,7 +54,6 @@ public class WemoCellView: UICollectionViewCell {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public class WemoDeviceCellView: WemoCellView {
|
public class WemoDeviceCellView: WemoCellView {
|
||||||
private var _device: WemoDevice?
|
|
||||||
private var _ordinal: Int = 0
|
private var _ordinal: Int = 0
|
||||||
private var _nameLabel: UILabel = UILabel()
|
private var _nameLabel: UILabel = UILabel()
|
||||||
private var _ordinalLabel: UILabel = UILabel()
|
private var _ordinalLabel: UILabel = UILabel()
|
||||||
@@ -123,17 +122,11 @@ public class WemoDeviceCellView: WemoCellView {
|
|||||||
|
|
||||||
// MARK: API
|
// MARK: API
|
||||||
|
|
||||||
var device: WemoDevice?
|
var deviceName: String = ""
|
||||||
{
|
{
|
||||||
get
|
didSet
|
||||||
{
|
{
|
||||||
return _device
|
_nameLabel.text = self.deviceName.uppercaseString
|
||||||
}
|
|
||||||
|
|
||||||
set(device)
|
|
||||||
{
|
|
||||||
_device = device
|
|
||||||
_nameLabel.text = _device?.name.uppercaseString
|
|
||||||
self.setNeedsLayout()
|
self.setNeedsLayout()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -153,16 +146,10 @@ public class WemoDeviceCellView: WemoCellView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var toggled: Bool
|
var toggled: Bool = false
|
||||||
{
|
{
|
||||||
get
|
didSet
|
||||||
{
|
{
|
||||||
return (_device?.state == .On)
|
|
||||||
}
|
|
||||||
|
|
||||||
set(toggled)
|
|
||||||
{
|
|
||||||
_device?.state = (toggled ? .On : .Off)
|
|
||||||
_indicator.status = toggled
|
_indicator.status = toggled
|
||||||
|
|
||||||
if (toggled) {
|
if (toggled) {
|
||||||
|
|||||||
Reference in New Issue
Block a user