- added checking of QR code

- grouped files into MVC
This commit is contained in:
Guy Saldanha committed 2014-10-22 17:30:37 +02:00
1 parent b0e7c672ef
commit 6c0510e177
3 files changed
+56 -26

No files matched your search

+33 -9
View File
@@ -98,6 +98,36 @@
name = Frameworks;
sourceTree = "<group>";
};
7F06590019F7FE750077FF95 /* Model */ = {
isa = PBXGroup;
children = (
7FA6551919F6661900A1B92D /* DataManager.swift */,
7FA6551719F65FBD00A1B92D /* GPSFix.swift */,
7F44095919F65B5B0021BF22 /* CoreData.xcdatamodeld */,
);
name = Model;
sourceTree = "<group>";
};
7F06590119F7FE920077FF95 /* View */ = {
isa = PBXGroup;
children = (
7F83F15719F154F000C53328 /* HomeViewController.swift */,
7F0658FC19F7D6700077FF95 /* QRCodeViewController.swift */,
7F83F15919F154F000C53328 /* Main.storyboard */,
7F83F15E19F154F000C53328 /* LaunchScreen.xib */,
);
name = View;
sourceTree = "<group>";
};
7F06590219F7FEA40077FF95 /* Controller */ = {
isa = PBXGroup;
children = (
7F2C605919F160E400C32D93 /* LocationManager.swift */,
7F0658FE19F7EE910077FF95 /* QRCodeManager.swift */,
);
name = Controller;
sourceTree = "<group>";
};
7F83F14719F154F000C53328 = {
isa = PBXGroup;
children = (
@@ -122,15 +152,9 @@
isa = PBXGroup;
children = (
7F83F15519F154F000C53328 /* AppDelegate.swift */,
7F83F15719F154F000C53328 /* HomeViewController.swift */,
7F0658FC19F7D6700077FF95 /* QRCodeViewController.swift */,
7F83F15919F154F000C53328 /* Main.storyboard */,
7F83F15E19F154F000C53328 /* LaunchScreen.xib */,
7F2C605919F160E400C32D93 /* LocationManager.swift */,
7FA6551919F6661900A1B92D /* DataManager.swift */,
7F0658FE19F7EE910077FF95 /* QRCodeManager.swift */,
7FA6551719F65FBD00A1B92D /* GPSFix.swift */,
7F44095919F65B5B0021BF22 /* CoreData.xcdatamodeld */,
7F06590119F7FE920077FF95 /* View */,
7F06590219F7FEA40077FF95 /* Controller */,
7F06590019F7FE750077FF95 /* Model */,
7F83F15C19F154F000C53328 /* Images.xcassets */,
7F83F15319F154F000C53328 /* Supporting Files */,
);
+17 -15
View File
@@ -8,7 +8,7 @@
import Foundation
class QRCodeManager: NSObject {
class QRCodeManager {
struct Keys {
static let leaderBoard = "leaderboard"
@@ -36,26 +36,24 @@ class QRCodeManager: NSObject {
return Singleton.sharedQRCodeManager
}
override init() {
super.init()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "qrcodeScanned:", name: QRCodeViewController.NotificationType.qrcodeScannedNotificationKey, object: nil)
}
// MARK: - notification callbacks
func qrcodeScanned(notification: NSNotification) {
parseString(notification.userInfo!["value"] as String)
}
// MARK: - methods
func parseString(urlString: String) {
func parseString(urlString: String) -> Bool {
let url = NSURL(string: urlString)
server = url!.scheme! + "://" + url!.host! + ":" + url!.port!.stringValue
if (url == nil || url!.scheme == nil || url!.host == nil) {
return false
}
server = url!.scheme! + "://" + url!.host!
if ((url!.port) != nil) {
server! += ":" + url!.port!.stringValue
}
let queryString = url!.query
if (queryString == nil) {
return false
}
let urlComponents = queryString!.componentsSeparatedByString("&")
var queryStringDictionary = [String:String]()
for keyValuePair in urlComponents
@@ -73,5 +71,9 @@ class QRCodeManager: NSObject {
mark = queryStringDictionary[QRCodeManager.Keys.mark]
from = queryStringDictionary[QRCodeManager.Keys.from]?.toInt()
to = queryStringDictionary[QRCodeManager.Keys.to]?.toInt()
// TODO: make sure minimum values set
return true
}
}
+6 -2
View File
@@ -60,8 +60,12 @@ class QRCodeViewController: UIViewController, AVCaptureMetadataOutputObjectsDele
let metadataObject: AVMetadataMachineReadableCodeObject = metadataObjects[0] as AVMetadataMachineReadableCodeObject
println(metadataObject.stringValue)
let notification = NSNotification(name: NotificationType.qrcodeScannedNotificationKey, object: self, userInfo:["value": metadataObject.stringValue])
NSNotificationQueue.defaultQueue().enqueueNotification(notification, postingStyle: NSPostingStyle.PostASAP)
if (!QRCodeManager.sharedManager.parseString(metadataObject.stringValue)) {
var alert = UIAlertController(title: "SAP Tracker", message: "Incorrect QR Code", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))
self.presentViewController(alert, animated: true, completion: nil)
return
}
session.stopRunning()
previewLayer.removeFromSuperlayer()