populate meetings list with entries from context

This commit is contained in:
Saúl Ibarra Corretgé 2017-09-28 10:32:08 +02:00
parent ea4cd420fa
commit dcb32d2792
2 changed files with 26 additions and 18 deletions

View File

@ -82,14 +82,8 @@ class ExtensionDelegate: NSObject, WCSessionDelegate, WKExtensionDelegate {
let recentURLs = applicationContext["recentURLs"];
if let recentURLsArray = recentURLs as? NSArray {
for entry in recentURLsArray {
// FIXME possible runtime exception
let entryDict = entry as! NSDictionary;
let roomURL = entryDict["roomURL"] as? NSString ?? "NULL";
let timestamp = entryDict["timestamp"] as? NSNumber ?? -1;
print("roomURL: \(roomURL) ts: \(timestamp)");
//print("entry \(type(of: entry)) \(type(of: roomURL)) \(type(of: timestamp))");
}
let controller = WKExtension.shared().rootInterfaceController as! InterfaceController
controller.updateRecents(withRecents: recentURLsArray)
}
}

View File

@ -21,19 +21,33 @@ import Foundation
class InterfaceController: WKInterfaceController {
@IBOutlet var table: WKInterfaceTable!
func updateRecents(withRecents recents: NSArray) {
table.setNumberOfRows(recents.count, withRowType: "MeetingRowType")
for (index, entry) in recents.enumerated() {
// FIXME possible runtime exception
let entryDict = entry as! NSDictionary
let roomURL = entryDict["roomURL"] as! NSString
let timestamp = entryDict["timestamp"] as! NSNumber
// Prepare values
let room = roomURL.components(separatedBy: "/").last
let date = Date(timeIntervalSince1970: timestamp.doubleValue / 1000) // timestamp is taken with Date.now() in JS, which uses milliseconds
let dateFormatter = DateFormatter()
dateFormatter.timeZone = TimeZone.current
dateFormatter.locale = NSLocale.current
dateFormatter.dateFormat = "HH:mm yyyy-MM-dd"
let strDate = dateFormatter.string(from: date)
// Update row controller
let controller = table.rowController(at: index) as! MeetingRowController
controller.roomLabel.setText(room)
controller.timeLabel.setText(strDate)
}
}
override func awake(withContext context: Any?) {
super.awake(withContext: context)
// Some fake data for the table
table.setNumberOfRows(2, withRowType: "MeetingRowType")
var controller = table.rowController(at: 0) as! MeetingRowController
controller.roomLabel.setText("HCVideoStandup")
controller.timeLabel.setText("17:45")
controller = table.rowController(at: 1) as! MeetingRowController
controller.roomLabel.setText("DoYouEvenWatch")
controller.timeLabel.setText("23:59")
}
override func willActivate() {